10 | MySQL为什么有时候会选错索引?

 

如果使用索引 a,每次从索引 a 上拿到一个值,都要回到主键索引上查出整行数据,这个代价优化器也要算进去的。

而如果选择扫描 10 万行,是直接在主键索引上扫描的,没有额外的代价。

优化器会估算这两个选择的代价,从结果看来,优化器认为直接扫描主键索引更快。

当然,从执行时间看来,这个选择并不是最优的。

 

不过需要注意的是,文章中给出的几个选错索引的例子都没有浮现出来。

posted @ 2020-01-31 19:09  lakeslove  阅读(136)  评论(0编辑  收藏  举报