MySQL 存储引擎 MyISAM 与 InnoDB 区别

Johngo学长 MySQL 53

锁粒度方面

由于锁粒度不同,InnoDB比MyISAM支持更高的并发;InnoDB 的锁粒度为行锁、MyISAM 的锁粒度为表锁、行锁需要对每一行进行加锁,所以锁的开销更大,但是能解决脏读和不可重复读的问题,相对来说也更容易发生死锁

可恢复性上

由于InnoDB是有事务日志的,所以在产生由于数据库崩溃等条件后,可以根据日志文件进行恢复。而 MyISAM 则没有事务日志。

查询性能上

MylSAM要优于InnoDB因为InnoDB在查询过程中,是需要维护数据缓存,而且查询过程是先定位到行所在的数据块,然后在从数据块中 定位到要查找的行;而 MyISAM 可以直接定位到数据所在的内存地址,可以 直接找到数据。

表结构文件上

MyISAM的表结构文件包括:frm(表结构定义),.MYI(索 引),.MYD(数据);而 InnoDB 的表数据文件为:ibd 和 frm(表结构定义)。

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部