MySQL 调优 —— Using filesort

Posted cxchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 调优 —— Using filesort相关的知识,希望对你有一定的参考价值。

出现这个问题的解决办法在于 mysql 每次查询仅仅能使用一个索引, 而你的 SQL 语句 WHERE 条件和 ORDER BY 的条件不一样, 索引没建好的话。 那么 ORDER BY 就使用不到索引。 出现了 Using filesort 问题。

解决问题就是建立一个包括 WHERE 和 ORDER BY 条件的混合索引。

比方原来 SQL 语句是: 

SELECT * FROM user u where u.id=100 order by u.update_time

而索引是 idx_user_id(id)

如今又一次建立索引为 idx_user_id_update_time(id,update_time)
再使用 EXPLAIN 命令查看。 假设 key 使用的是上述新建的 idx_user_id_update_time 索引。 则能够看到 Using file sort 问题消失了。 假设 key 不是使用新建 idx_user_id_update_time 索引。 能够使用 force index() 方法强制使用这个索引, 此时 using filesort 问题就攻克了。 
SELECT * FROM user u force index(idx_user_id_update_time) where u.id=100 order by u.update_time








以上是关于MySQL 调优 —— Using filesort的主要内容,如果未能解决你的问题,请参考以下文章

SQL调优指南笔记18:Analyzing Statistics Using Optimizer Statistics Advisor

MySQL Innodb--共享临时表空间和临时文件

Docker调优之mysql内存占用过大

mysql 调优

MySQL调优

mysql调优