mysql 支持的默认引擎是InnoDB,其他的常用引擎包括MyISAM等,那么他们有什么差别呢。
首先执行
show engines;
来查看数据库当前支持的引擎。
可以看到mysql支持这么多不同的引擎,其中InnoDB值得关注的点也很明显。
它支持事务,XA,Savepoints。
MyISAM 也较为常用,虽然不支持事务,但对于读操作而言,它具有更高的性能。
具体的原因,我参考了网上其他小伙伴的博客。(http://www.bcty365.com/content-35-5659-1.html)
INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多:
1)数据块,INNODB要缓存,MYISAM只缓存索引块, 这中间还有换进换出的减少;
2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快
3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护
2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快
3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护
MVCC (Multi-Version Concurrency Control)多版本并发控制