首页 后端开发 数据库 浏览内容

【数据库】MySQL 出现Using filesort的解决方法

3219 0 BaiDu已收录 评论留言

出现这个问题的原因在于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
标签:
墨月的头像
  • 本文由墨月网络整理编辑,转载请以链接形式注明本文地址:https://www.moyoo.net/12821.html
    版权所有© 墨月网络 | 本文采用 BY-NC-SA 进行授权丨发布于:2015-12-23 22:45
    若未注明,均为原创;部分内容源于网络,版权归原作者所有,如有侵权,请联系我们删除。
已有 0 条评论 新浪微博

关注我们,实时联系

AD

AD