zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MyISAM与InnoDB对比(重点索引对比)

索引 对比 InnoDB 重点 MyISAM
2023-09-27 14:25:41 时间

一、锁差异

myisam支持表级锁,锁定对象的颗粒度大,所以加锁和开锁的速度很快,能够很好地避免死锁

innodb支持行级锁,对象的颗粒度小,所以锁定资源争用的概率也小,能够更好地支持并发,容易发生死锁

二、事务

myisam不支持事务

innodb支持事务,具有MVCC和四种隔离级别解决数据一致性问题

三、数据文件差异

myisam存储在三个文件上,.frm存储表结构,.MYD存放数据,.MYI存放索引

innodb存储在两个文件上,frm存储表结构,.ibd存储数据和索引

四、索引

myisam:叶子节点存数据的地址(索引和数据分开放),叶子结点包含该行的地址,叶子节点顺序链表。

inoodb:聚簇索引叶子节点包含完整数据(索引和数据在一块),辅助索引叶子节点包含该列的值,还有对应行的主键索引地址,所以不是覆盖索引需要二次查找,叶子节点顺序链表。

(主索引又称聚簇索引,一般为主键自增id,数据行的物理顺序与列值的逻辑顺序相同,一个表中只能拥有一个聚集索引)

五、外键

myisam不支持外键

innodb支持外键

六、count(*)

myisam直接获取

inoodb需要扫表