首先需要明確查詢效能低下的基礎原因:訪問資料過多。
還有一種可能性:篩選大量資料,但是並不常見。
通常情況下效能低下的查詢都可以通過減少訪問資料量的方式進行優化。
兩種分析方法:
應用程式是否在檢索大量超過需要的資料。
確認mysql伺服器是否在分析大量超過需要的資料行。
描述:乙個查詢請求了超過實際需要的資料,但是多餘的部分並沒有什麼用處而被丟掉。
影響:這會給mysql伺服器帶來額外的負擔,增加網路開銷,消耗應用伺服器的cpu和記憶體資源
典型案例:
確定了查詢只返回了需要的資料後,接下來優化是否掃瞄過多的資料。
這裡有衡量查詢開銷的三個最簡單的指標
沒有哪個指標可以完美衡量查詢的開銷,但是大致反映了mysql在內部執行查詢時需要訪問多少資料,並可以大概推算出查詢執行的時間。這三個指標會記錄著mysql的慢日誌中
檢查慢日誌是找出掃瞄行數過多的查詢的好辦法
首先我們給出幾個理想的狀態
理想的查詢:
使用explain可以分析查詢執行的方式,舉例如下一般情況下,mysql使用如下三種方式應用where,從好到壞依次為:訪問型別有很多種分別有
全表掃瞄、索引掃瞄、範圍掃瞄、唯一索引查詢、常數引用等。
慢查詢分析
在mysql的配置檔案 etc mysql mysql.conf.d mysqld.cnf mysqld 中配置懶查詢 slow query log on 是否已經開啟慢查詢 long query time 1 慢查詢統計標準,超過1秒 slow query log file usr local m...
Mysql 慢查詢和慢查詢日誌分析
眾所周知,大訪問量的情況下,可新增節點或改變架構可有效的緩解資料庫壓力,不過一切的原點,都是從單台mysql開始的。下面總結一些使用過或者研究過的經驗,從配置以及調節索引的方面入手,對mysql進行一些優化。第一步應該做的就是排查問題,找出瓶頸,所以,先從日誌入手 開啟慢查詢日誌 mysql sho...
Mysql 慢查詢和慢查詢日誌分析
眾所周知,大訪問量的情況下,可新增節點或改變架構可有效的緩解資料庫壓力,不過一切的原點,都是從單台mysql開始的。下面總結一些使用過或者研究過的經驗,從配置以及調節索引的方面入手,對mysql進行一些優化。第一步應該做的就是排查問題,找出瓶頸,所以,先從日誌入手 開啟慢查詢日誌 mysql sho...