关闭

MySQL存储引擎MyISAM与InnoDB区别

瞎溜达 1年前 ⋅ 192 阅读
  1. 锁粒度方面:由于锁粒度不同,InnoDB比MyISAM支持更高的并发;InnoDB的锁粒度为行锁,MyISAM的锁粒度为表锁。行锁需要对每一行加锁,所以锁的开锁更大,但是能解决脏读和不可重复读的问题,相对来说也更容易发生死锁。
  2. 可恢复性:由于InnoDB是有事务日志的,所以在产生由于数据库崩溃等条件后,可以根据日志文件进行恢复。而MyISAM没有事务日志。
  3. 查询性能上:MyISAM优于InnoDB,因为InnoDB在查询过程中,是需要维护数据缓存,而查询过程是先定位到行所在的数据块,然后再从数据块中定位到要查找的行,而MyISAM可以直接定位到数据所在的内存地址,可以直接找到数据。
  4. 表结构文件上:MyISAM的表结构文件包括:frm(表结构定义),MYI(索引),MYD(数据)。而InnoDB的数据文件为:ibd和frm(表结构定义)

全部评论: 0

    我有话说: