如果索引不能用于满足
ORDER BY
子句,MySQL 将执行
filesort
读取表行并对它们进行排序的 操作。
用Explain语句可以看到最后一列显示using filesort。(mysql优化中有讲解)
下文提到trace文具,记录下trace工具开启方法:
进入mysql以后输入
set session optimizer_trace="enabled=on",end_markers_in_json=on;
即可开启trace工具,一般情况下都不要开trace工具,除非进行优化分析时。
filesort文件排序方式分为
单路排序
:是一次性取出满足条件行的所有字段,然后在sort buffer中进行排序;用trace工具可
以看到sort_mode信息里显示< sort_key, additional_fields >或<sort_key,packed_additional_fields >
双路排序