概要:
Mysql的優化,大致能夠分爲三部分:索引的優化,sql語句的優化,表的優化。本文主要幫助本身整理思路,也可做爲一個學習MySQL優化的提綱。sql
索引的優化
- 只要列中含有NULL值,就最好不要在此例設置索引,複合索引若是有NULL值,此列在使用時也不會使用索引
- 儘可能使用短索引,若是能夠,應該制定一個前綴長度
- 對於常常在where子句使用的列,最好設置索引,這樣會加快查找速度
- 對於有多個列where或者order by子句的,應該創建複合索引
- 對於like語句,以%或者‘-’開頭的不會使用索引,以%結尾會使用索引
- 儘可能不要在列上進行運算(函數操做和表達式操做)
- 儘可能不要使用not in和<>操做
sql語句的優化
- 查詢時,能不要就不用,儘可能寫全字段名
- 大部分狀況鏈接效率遠大於子查詢
- 多使用explain和profile分析查詢語句
- 查看慢查詢日誌,找出執行時間長的sql語句優化
- 多表鏈接時,儘可能小表驅動大表,即小表 join 大表
- 在千萬級分頁時使用limit
- 對於常常使用的查詢,能夠開啓緩存
表的優化
- 表的字段儘量用NOT NULL
- 字段長度固定的表查詢會更快
- 把數據庫的大表按時間或一些標誌分紅小表
- 將表分區
螞蟻金服架構師帶你學優化-MySql性能優化實戰(附詳細視頻教程)
- 1.步步驚心,MySql優化滿地是坑;
- 2.叢林密佈,優化有圖可循;
- 3.悔恨難當,只因用錯索引;
- 4.披荊斬棘,執行計劃讓你脫離深坑;
- 5.豁然開朗,SQL優化有方可循
一個SQL引起的思考
經常使用的優化方式
反範式化設計
三大範式
物理設計
索引是什麼?
最簡單的索引
稍微複雜點的索引
MySql中的索引
索引分類
總結
優化一般都須要三管齊下:不作、少作、快速地作。咱們但願這裏的案例可以幫助你將理論和實踐聯繫起來。數據庫
本文的重點是MySql性能優化。須要更詳細視頻資料和思惟導圖的能夠評論區留言,我會一一發送緩存