MySQL查询是按主键id排序的,实际上是filesort?

最近了解到mysql的排序也需要满足【前导列/最左边前缀】的原则才能按索引排序,否则就是filesort。

以前没注意过。我在工作中使用了很多主键id排序。用解释分析后,我发现几乎所有的都是文件排序,不管是

选择*其中a=123按id desc排序;

选择id、a、b、c,其中a=123按id desc排序;

它们不能按主键索引排序。id是自增主键,a列有索引。列a的索引可用于查询,但排序仍由filesort完成。

按理说主键也有索引,那为什么不能按索引排序呢?

原创文章,作者:elbert,如若转载,请注明出处:https://twoear.com/mysql%e6%9f%a5%e8%af%a2%e6%98%af%e6%8c%89%e4%b8%bb%e9%94%aeid%e6%8e%92%e5%ba%8f%e7%9a%84%ef%bc%8c%e5%ae%9e%e9%99%85%e4%b8%8a%e6%98%affilesort%ef%bc%9f/