一、运行show engines命令,查看当前数据库支持的存储引擎
二、常用的存储引擎
-
InnoDB(mysql从5+版本之后就默认使用的存储引擎)
- 可以通过自动增长列,方法是auto_increment。
- 支持事务。默认的事务隔离级别为可重复度,通过MVCC(并发版本控制)来实现的。
- 使用的锁粒度为行级锁,可以支持更高的并发;
- 支持外键约束;外键约束其实降低了表的查询速度,但是增加了表之间的耦合度。
- 配合一些热备工具可以支持在线热备份;
- 在InnoDB中存在着缓冲管理,通过缓冲池,将索引和数据全部缓存起来,加快查询的速度;
- 对于InnoDB类型的表,其数据的物理组织形式是聚簇表。所有的数据按照主键来组织。数据和索引放在一块,都位于B+数的叶子节点上;
当然InnoDB的存储表和索引也有下面两种形式:
- 使用共享表空间存储:所有的表和索引存放在同一个表空间中。
- 使用多表空间存储:表结构放在frm文件,数据和索引放在IBD文件中。分区表的话,每个分区对应单独的IBD文件,分区表的定义可以查看我的其他文章。使用分区表的好处在于提升查询效率。
使用这个存储引擎,每个MyISAM在磁盘上存储成三个文件。
- frm文件:存储表的定义数据
- MYD文件:存放表具体记录的数据
- MYI文件:存储索引
三、对比图表
MySQL的存储引擎
原文:https://www.cnblogs.com/zhouxuezheng/p/12610256.html