MySQl優化筆記

dongyu2013發表於2014-03-28
第一步 測量時間花在什麼地方,無法測量就無法優化
實際地討論兩種型別的效能剖析:基於執行時間的分析和基於等待的分析。基於執行時間的分析研究的是什麼任務的執行時間最長,
基於等待的分析則是判斷任務在什麼地方被阻塞的時間最長。

理解效能優化
1.值得優化的查詢
2.異常情況
3.未知的未知
4.被掩藏的細節

對系統進行效能剖析還是建議自上而下地進行,這個可以追蹤自使用者發起的伺服器響應的整個流程。
效能瓶頸可能有很多影響因素:
外部資源,比如呼叫了外部的web服務或者搜尋引擎
應用需要處理大量的資料,比如分析一個超大的XML檔案
在迴圈中執行昂貴的操作,比如濫用正規表示式
使用了低效的演算法,比如使用暴力搜尋演算法來查詢列表中的項

set @query_id=1;
select STATUS, SUM(DURATION) AS Total_R,
      ROUND(
           100*SUM(DURATION)/(SELECT SUM(DURATION) 
             FROM INFORMATION_SCHEMA.PROFILING 
             WHERE QUERY_ID=@query_id )
        , 2) AS Pct_R,
        COUNT(*) AS CALLs,
       SUM(DURATION)/COUNT(*) AS "R/Call"
FROM INFORMATION_SCHEMA.PROFILING
WHERE QUERY_ID=@query_id
GROUP BY STATE
ORDERY BY Total_R DESC;












來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29012686/viewspace-1131351/,如需轉載,請註明出處,否則將追究法律責任。

相關文章