使用性能剖析
當獲得服務器或者查詢的剖析報告後怎麼使用?好的剖析報告能夠將潛在的問題顯示出來但最終的解決方案還需要用戶來決定(盡管報告可能會給出建議)優化查詢時用戶需要對服務器如何執行查詢有較深的了解剖析報告能夠盡可能多地收集需要的信息給出診斷問題的正確方向以及為其他諸如EXPLAIN 等工具提供基礎信息這裡只是先引出話題後續章節將繼續討論
盡管一個擁有完整測量信息的剖析報告可以讓事情變得簡單但現有系統通常都沒有完美的測量支持從前面的例子來說我們雖然推斷出是臨時表和沒有索引的讀導致查詢的響應時間過長但卻沒有明確的證據因為無法測量所有需要的信息或者測量的范圍不正確有些問題就很難解決例如可能沒有集中在需要優化的地方測量而是測量了服務器層面的活動或者測量的是查詢開始之前的計數器而不是查詢開始後的數據
也有其他的可能性設想一下正在分析慢查詢日志發現了一個很簡單的查詢正常情況下都非常快卻有幾次非常不合理地執行了很長時間手工重新執行一遍發現也非常快然後使用EXPLAIN 查詢其執行計劃也正確地使用了索引然後嘗試修改WHERE條件中使用不同的值以排除緩存命中的可能也沒有發現有什麼問題這可能是什麼原因呢?
如果使用官方版本的MySQL慢查詢日志中沒有執行計劃或者詳細的時間信息對於偶爾記錄到的這幾次查詢異常慢的問題很難知道其原因在哪裡因為信息有限可能是系統中有其他東西消耗了資源比如正在備份也可能是某種類型的鎖或者爭用阻塞了查詢的進度這種間歇性的問題將在下一節詳細討論
返回目錄高性能MySQL
編輯推薦
ASP NET開發培訓視頻教程
數據倉庫與數據挖掘培訓視頻教程
Oracle索引技術
From:http://tw.wingwit.com/Article/program/MySQL/201311/29705.html