请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么说查询的时候myisam比innodb快?

从视频中老师你讲解Myisam使用的两颗索引树都是非聚类索引,都是现在树上查索引,再到存储的文件中查数据,而innodb如果使用主键查询的话不是直接就查到了吗?而且如果innodb使用辅助索引的话步骤是先在辅助索引的树上查,再到主键索引的树上查,这样的话不是和myisam的步骤差不多了么?

正在回答 回答被采纳积分+3

1回答

翔仔 2019-02-16 23:51:47

同学好,

因为INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多:
1)数据块,INNODB要缓存,MYISAM只缓存索引块,  这中间还有换进换出的减少;

2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快
(myisam 更新频率低,所以 索引变更少 . 所以允许每次更新 即更新主索引,也更新付索引,更新 offset)

3)INNODB还需要维护MVCC一致;

MVCC (Multi-Version Concurrency Control)多版本并发控制
( 由于没有了多行,不需要判断 选取可见的那行数据)
  myisam 表锁.牺牲了写性能,提高了读性能.


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信