1. 程式人生 > >【MySQL】——MySQL的優化

【MySQL】——MySQL的優化

經常會問到MySQL如何優化,可以考慮從三個方面優化:索引優化、sql語句優化、資料表的優化

索引的優化

  • 只要列中含有NULL值,就最好不要設定索引,如果當時複合索引有NULL值,此列就會索引失效。
  • 對於經常在where子句中使用的列,最好設定索引,這樣會加快查詢速度
  • 對於like的語句,%號結尾會使用索引,如果在中間或者開頭索引均會失效
  • 操作列上儘量不要計算(函式操作和表示式)
  • 儘量不要是用not in和<>操作
  • 少用or,用它做連線的時候索引會失效
  • 組合索引儘量是全值匹配

sql語句的優化

  • 查詢的時候,儘量不要使用*好,儘量寫全欄位的名字,需要那些列返回那些列
  • 使用join代替子查詢,子查詢的效率遠遠小於連線效率
  • 多實用explain和profile分析查詢語句
  • 檢視慢查詢日誌,找出執行時間長的sql語句優化。
  • 多表連線時,儘量小表驅動大表,即小表join大表
  • 在千萬級分頁的時候使用limit
  • 對於經常查詢的語句,適當的開啟快取

資料表的優化

  • 表的欄位儘可能使用NOT NULL
  • 欄位固定的表查詢會更快
  • 把資料庫的大表按照時間或一些標誌分成小表
  • 將表分割槽