MySQL進階(七)MySQL優化思路
阿新 • • 發佈:2018-11-16
優化思路
(1)看錶的資料型別是否設定合理,有沒有遵循選取資料型別越簡單越小的原則
(2)表中的碎片是否整理
(3)表的統計資訊是否收集,只有統計資訊準確,執行計劃才可以幫助我們優化SQL
(4)檢視執行計劃,檢查索引使用情況,沒有使用索引,考慮建立
(5)建立索引之前,檢視索引的選擇性,來判斷這個欄位是否適合建立索引,索引的選擇性越高查詢效率越高,因為選擇性高的索引可以讓MySQL在查詢的時候過濾掉更多的行。主鍵索引和唯一索引的選擇性是1,這是最好的索引選擇性
(6)建立好索引之後,對比兩次的結果,看是否查詢效率提高了
說明:合理建立索引的三個"經常"(1)經常被查詢的列(一般放在where條件後面)(2)經常用於表連線的列(3)經常排序分組的列(order by或者group by後面的欄位)
檢視執行計劃的小技巧
(1)檢視type列,如果出現all關鍵字,後面的內容就不用看了,代表全表掃描
(2)檢視key列,看是否使用了索引,null代表沒有使用索引
(3)檢視rows列,表示執行過程中被掃描的行數
(4)檢視extra,觀察是否有using filesort或者using temporary,這些很影響資料庫效能
(5)檢視 filtered列,它指返回結果中的行佔需要讀到的行的百分比