关于innodb主键索引的问题
来源:2-13 MySQL常用存储引擎之Innodb

烈焰卡卡
2020-03-27
想问一下,有一张表a,任何索引都没有,只有主键和其他字段。
当我查询select * from a时,这时候explain查看自然是走了ALL的全表查询。
当我查询select id from a时,这时候explain查看却是走了主键索引而不是全表查询。
我理解主键索引作为B+树的结构,非叶子节点只存储了一个范围,比如id5以下的指向一个数据页,id10以下的指向另一个数据页,即便我查询的只有id列,也不应该存在所谓覆盖索引的情况,也应该查询所有数据页才能获取到每一条数据的id。
请问一下老师,是我理解上哪里出问题了么,为什么实际情况当只查询id列的时候,不需要走全表搜索,只在非叶子节点就能完成这个查询呢?
写回答
1回答
-
sqlercn
2020-03-28
因为只查id的话可以通过主键索引获得,所以只用主键扫描就可以了,你可以看看innodb的存储结构0132020-03-29
相似问题