1. 程式人生 > 其它 >mysql執行慢的排查手冊

mysql執行慢的排查手冊

最近遇到了mysql查詢慢的問題,然後吧廢了頓周折,現在把遇到的問題記錄下來,排查的時候,需要按照這個順序排查

  1. 如果有表關聯,多表查詢,記得將關聯欄位都新增索引(阿里巴巴程式碼規範裡提到過)
  2. 如果是生產環境,需要檢測下mysql快取池的配置,是否進行過配置
  3. 如果是inner join,使用straight_join,檢視真實執行的順序,改變下表關聯的順序,檢視效率問題,最好小表驅動大表
  4. 在多表查詢過程中,同上,表連線順序影響很大,需要保證從左往右,儘可能地保證每一個表都能限制最大的範圍。比如說,AB表關聯,查詢條件A.a能將範圍縮小到10%資料,B.b能將範圍縮小到1%的資料,那麼B straight_join A,很可能效率更高
  5. 時間範圍判斷時,嘗試在時間欄位上新增索引
  6. 避免在索引欄位上新增函式,會導致索引失效,最常見的例子是,date_format(beginDate, '%Y-%m-%d') <= date_format(now(), '%Y-%m-%d'),資料庫比較的就是字串,所以這裡也沒必要這麼寫,影響效率得不償失

解釋:
哎呀,待補上

夢想不多,口袋有糖,卡里有錢,未來有你