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

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

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

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

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

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

原文地址:https://www.cnblogs.com/lakeslove/p/12246312.html