1. 程式人生 > 其它 >慢SQL治理最佳實踐

慢SQL治理最佳實踐

慢SQL治理主要從三個方面進行優化

  1. 從資料表的定義開始優化
  2. 從索引設計開始優化
  3. 從查詢開始優化

優化表設計

  1. 表字段長度儘量緊湊,欄位儘量不冗餘
  2. 欄位型別儘量考慮用簡單的型別
  3. 欄位儘量有預設值,且預設值儘量不要用null

優化索引

設計索引的時候,儘量讓查詢用到索引,並且減少回表次數。

  1. 業務查詢頻率高的欄位儘量設計成覆蓋索引,比如select age, name from user where name='張三', 如果建立了(name, age)的覆蓋索引,可以避免回表查詢
  2. where語句要能用到索引,並且避免出現使索引失效的情況,比如對索引欄位進行了函式操作等
  3. 排序欄位儘量按照索引排序,避免使用到外部排序,比如file sort

優化查詢

  1. 確保select 的欄位都是業務所需的,避免直接使用select *
  2. 複雜查詢拆分成多個簡單查詢
  3. 一次返回的資料條數不能太多,分批次返回
  4. 限制in查詢中的條目
  5. 分頁查詢時,頁數越大時,效能越差,建議結合id>LastedMaxId查詢
  6. join查詢的表不能太多,後面儘量優化為單表查詢