【MySQL】——MySQL的優化
阿新 • • 發佈:2018-12-11
經常會問到MySQL如何優化,可以考慮從三個方面優化:索引優化、sql語句優化、資料表的優化
索引的優化
- 只要列中含有NULL值,就最好不要設定索引,如果當時複合索引有NULL值,此列就會索引失效。
- 對於經常在where子句中使用的列,最好設定索引,這樣會加快查詢速度
- 對於like的語句,%號結尾會使用索引,如果在中間或者開頭索引均會失效
- 操作列上儘量不要計算(函式操作和表示式)
- 儘量不要是用not in和<>操作
- 少用or,用它做連線的時候索引會失效
- 組合索引儘量是全值匹配
sql語句的優化
- 查詢的時候,儘量不要使用*好,儘量寫全欄位的名字,需要那些列返回那些列
- 使用join代替子查詢,子查詢的效率遠遠小於連線效率
- 多實用explain和profile分析查詢語句
- 檢視慢查詢日誌,找出執行時間長的sql語句優化。
- 多表連線時,儘量小表驅動大表,即小表join大表
- 在千萬級分頁的時候使用limit
- 對於經常查詢的語句,適當的開啟快取
資料表的優化
- 表的欄位儘可能使用NOT NULL
- 欄位固定的表查詢會更快
- 把資料庫的大表按照時間或一些標誌分成小表
- 將表分割槽