详解数据库存储引擎
来源:互联网 发布:程序员的修炼之道 pdf 编辑:程序博客网 时间:2024/06/06 16:25
Mysql中插件式存储引擎一直都是其非常有特色的亮点,其灵活的处理方式,高度可定制化及完全开放的实现一直被很多用户所肯定。
存储引擎说明白点就是数据的处理方式和数据的存储方式
主流的插件式存储引擎主要有以下几种:
MyISAM,InnoDB,NDB Cluster,Merge,Archive,Federated
MyISAM:是Mysql默认的存储引擎,也是目前Mysql使用非常广泛的存储引擎之一。拥有较高的插入,查询速度,但不支持事务。
MyISAM存储引擎的每一个表都被存放在三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD(表数据).MYI(索引数据)。
MyISAM支持一下三种索引类型。B-Tree,R-Tree,Full-text,B-Tree索引是用的最多的,就是所有的索引节点都按照balance tree的数据结构来存储,所有的索引数据节点都在叶节点。
MyISAM存储引擎是表级锁定。
InnoDB:
5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定。
支持事务安全,数据多版本读取,锁定机制的改进,实现外键。
物理结构:数据文件(表数据和索引数据),日志文件
NDB Cluster:存储引擎主要用于Mysql Cluster分布式集群环境,就是在无共享存储设备的情况下实现的一种内存数据库Cluster环境,主要是通过NDB Cluster存储引擎来实现的。
高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
Merge :将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
Federated: 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用。
数据库引擎区别(MyIsam 和 InnoDB)
1. InnoDB 不支持 FULLTEXT 类型的索引。
2. InnoDB 中不保存表的具体行数,也就是说,执行 select count(*) from table 时,InnoDB 要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count(*)语句包含where 条件时,两种表的操作是一样的。
3. 对于 AUTO_INCREMENT 类型的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中,可以和其他字段一起建立联合索引。
4. DELETE FROM table 时,InnoDB 不会重新建立表,而是一行一行的删除。
5. LOAD TABLE FROM MASTER 操作对 InnoDB 是不起作用的,解决方法是首先把 InnoDB 表改成 MyISAM
表,导入数据后再改成 InnoDB 表,但是对于使用的额外的 InnoDB 特性(例如外键)的表不适用。
存储引擎说明白点就是数据的处理方式和数据的存储方式
主流的插件式存储引擎主要有以下几种:
MyISAM,InnoDB,NDB Cluster,Merge,Archive,Federated
MyISAM:是Mysql默认的存储引擎,也是目前Mysql使用非常广泛的存储引擎之一。拥有较高的插入,查询速度,但不支持事务。
MyISAM存储引擎的每一个表都被存放在三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD(表数据).MYI(索引数据)。
MyISAM支持一下三种索引类型。B-Tree,R-Tree,Full-text,B-Tree索引是用的最多的,就是所有的索引节点都按照balance tree的数据结构来存储,所有的索引数据节点都在叶节点。
MyISAM存储引擎是表级锁定。
InnoDB:
5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定。
支持事务安全,数据多版本读取,锁定机制的改进,实现外键。
物理结构:数据文件(表数据和索引数据),日志文件
NDB Cluster:存储引擎主要用于Mysql Cluster分布式集群环境,就是在无共享存储设备的情况下实现的一种内存数据库Cluster环境,主要是通过NDB Cluster存储引擎来实现的。
高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
Merge :将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
Federated: 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用。
数据库引擎区别(MyIsam 和 InnoDB)
1. InnoDB 不支持 FULLTEXT 类型的索引。
2. InnoDB 中不保存表的具体行数,也就是说,执行 select count(*) from table 时,InnoDB 要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count(*)语句包含where 条件时,两种表的操作是一样的。
3. 对于 AUTO_INCREMENT 类型的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中,可以和其他字段一起建立联合索引。
4. DELETE FROM table 时,InnoDB 不会重新建立表,而是一行一行的删除。
5. LOAD TABLE FROM MASTER 操作对 InnoDB 是不起作用的,解决方法是首先把 InnoDB 表改成 MyISAM
表,导入数据后再改成 InnoDB 表,但是对于使用的额外的 InnoDB 特性(例如外键)的表不适用。
阅读全文
0 0
- 详解数据库存储引擎
- MySQL数据库存储引擎详解
- MySQL数据库存储引擎详解
- MySQL数据库存储引擎详解
- MySQL数据库存储引擎详解
- MySQL数据库存储引擎详解
- MySQL数据库存储引擎详解
- MySQL数据库存储引擎详解
- 教程精选:MySQL数据库存储引擎详解
- MySQL数据库存储引擎详解(ZZ)
- MySQL数据库存储引擎详解(转)
- MySQL数据库中存储引擎的详解
- MySQL数据库存储引擎MyISAM和InnoDB的详解对比
- 基于InnoDB存储引擎的mysql数据库表结构详解
- MySQL数据库存储引擎MyISAM和InnoDB的对比详解
- MySQL数据库存储引擎MyISAM和InnoDB的对比详解
- 基于InnoDB存储引擎的mysql数据库表结构详解
- MySQL数据库InnoDB存储引擎 Buffer Pool Flush List详解
- C. Dasha and Password-C. Dasha and Password-暴力|dp思想
- android Notification与BroadcastReceiver结合使用
- 运筹学之排队论
- Centos 6.x docker的安装配置
- TensorFlow数据归一化
- 详解数据库存储引擎
- Mac 环境下安装OpenCV
- PhpStorm中输入框无法跟随问题的解决方案
- 为什么要清除浮动?
- javascript正则表达式笔记
- 算法:C++实现二叉树遍历(递归、非递归)
- 数据挖掘导论(4)——分类:基本概念、决策树与模型评估
- java如何上传文件
- 《深入理解计算机系统》第三版中文——学习资料