如果使用索引 a,每次从索引 a 上拿到一个值,都要回到主键索引上查出整行数据,这个代价优化器也要算进去的。
而如果选择扫描 10 万行,是直接在主键索引上扫描的,没有额外的代价。
优化器会估算这两个选择的代价,从结果看来,优化器认为直接扫描主键索引更快。
当然,从执行时间看来,这个选择并不是最优的。
不过需要注意的是,文章中给出的几个选错索引的例子都没有浮现出来。