order by为什么没有走索引?

执行下面语句, 发现没有走索引:

EXPLAIN select * from beauty_copy1 ORDER BY name desc  

在这里插入图片描述
但,加上 LIMIT 的语句走了索引:

EXPLAIN select * from beauty_copy1 ORDER BY name desc  limit 3

在这里插入图片描述
猜想原因是: 对于第一种方式,MySQL认为使用索引进行查询,尽管不需要排序,但是最后仍然需要回表,这种代价比全表扫描然后排序的代价更大。

补充:

对于filesort(文件排序):有双路排序单路排序两种算法,单路排序不需要回表,效率更快,但同时对内存要求较高(空间换时间)
order by为什么没有走索引?_第1张图片

你可能感兴趣的:(SQL,开发语言)