为什么myisam查询比innodb快

发布时间 2023-09-19 10:47:11作者: 李若盛开

主要原因有三点:

1)、查询时,由于innodb支持事务,所以会有mvvc(多版本并发控制)的一个比较,这个过程会损耗性能。
2)、查询时,如果走了索引,而索引又不是主键索引,此时由于innodb是聚簇索引,会有一个回表的过程,即:先去非聚簇索引树(非主键索引树)中查询数据,找到数据对应的key之后,再通过key回表到聚簇索引树,最后找到需要的数据。而myisam是非聚集索引,而且叶子节点存储的是磁盘地址,所以,查询的时候查到的最后结果不是聚簇索引树的key,而是会直接去查询磁盘。
3)、锁的一个损耗,innodb锁支持行锁,在检查锁的时候不仅检查表锁,还要看行锁。