回表

回表

前提知识:InnoDB、B+树、索引、聚集索引(唯一索引)、非聚集索引(普通索引)

定义

顾名思义,再次回到表中。在利用普通索引查询时会再次扫表查询。

原因

索引的底层存储结构不同导致的

聚集索引

B+树的叶子节点中直接存储唯一索引和当前行所有数据;利用唯一索引查询时,只需扫表一次。

image

非聚集索引

B+树的叶子节点中存储普通索引和当前行数据的唯一索引;利用普通索引查询时,则需需扫表两次。

image

这就是回表,所以回表是一种不好的现象。

解决方法

解决:建立联合索引,利用索引覆盖,避免使用非聚集索引。

哪些场景可以利用索引覆盖来优化SQL?

全表count查询优化

列查询回表优化

分页查询

posted @ 2022-08-02 22:45  fengqiyunyouyong  阅读(740)  评论(0)    收藏  举报