程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL調優--Usingfilesort

MySQL調優--Usingfilesort

編輯:MySQL綜合教程

MySQL調優--Usingfilesort


出現這個問題的原因在於 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


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved