为什么说查询的时候myisam比innodb快?
来源:3-11 锁模块之MyISAM与InooDB关于锁方面的区别

qq_撞碎南墙_0
2019-02-16
从视频中老师你讲解Myisam使用的两颗索引树都是非聚类索引,都是现在树上查索引,再到存储的文件中查数据,而innodb如果使用主键查询的话不是直接就查到了吗?而且如果innodb使用辅助索引的话步骤是先在辅助索引的树上查,再到主键索引的树上查,这样的话不是和myisam的步骤差不多了么?
写回答
1回答
-
翔仔
2019-02-16
同学好,
因为INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多:
1)数据块,INNODB要缓存,MYISAM只缓存索引块, 这中间还有换进换出的减少;
2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快
(myisam 更新频率低,所以 索引变更少 . 所以允许每次更新 即更新主索引,也更新付索引,更新 offset)
3)INNODB还需要维护MVCC一致;MVCC (Multi-Version Concurrency Control)多版本并发控制
( 由于没有了多行,不需要判断 选取可见的那行数据)
myisam 表锁.牺牲了写性能,提高了读性能.00
相似问题