mysql两大主要引擎为myisam和innodb,那这两个引擎有什么区别呢?
我们先新建两个除了引擎不同其他完全相同的表。
磁盘文件:
MyIsam表的磁盘文件有三个,(以表名为 table_myisam 为例)
- table_myisam.frm (保存表结构: FoRM)
- table_myisam.MYI (保存索引 MYisam Index)
- table_myisam.MYD (保存数据 MYisam Data)
Innodb表的磁盘文件有三个,(以表名为 table_Innodb 为例)
- table_Innodb.frm (保存表结构 FoRM)
- table_Innodb.ibd (保存索引和数据 InoodB Data)
---------------------------------------------
数据存储
MyIsam:索引和数据是分离的,索引保存的是数据的物理地址(非聚簇索引),数据可以是离散的,如图:
(图片均来源网络)
Innodb:索引和数据是放在一块的,索引的叶子节点顺序保存了数据本身