一.為什麼別人問你MySQL優化的知識總是沒有底氣
1.因為你只是回答一些大而化之的調優原則,
a.例如:」建立合理索引」(什麼樣的索引合理?)
b.「分錶分庫」(用什麼策略分錶分庫?)
c.「主從分離」(用什麼中間件?)
#2.沒有從細化到定量的層面去分析.
#a.如qps提高了%N?
b.有沒有減少檔案排序?
c.語句的掃描行數減少了多少?
二.怎麼做?
當mysql效率不高時,我們#首先要做的,不是最佳化,而是---診斷分析,找出瓶頸所在. CPU,記憶體,IO? 峰值,單條語句
1.分析常用指令
a).show processlist開啟慢查詢取得有問題SQL
b).explain 分析語句
2.語句等待時間長:
c).調優伺服器參數(如緩衝區,執行緒數等)
#3.語句執行時間長:
d).表格關聯多(表格設計有缺陷)
e).索引沒最佳化
#f).語句沒最佳化(where 條件計算類別語句等)
#.
####################################### #####等等###############這裡只是簡單的做一個描述。 ######
那麼,本系列博客,會展開分析一下mysql相關的只是,從優化到索引的創建,好好鞏固學習一下做一個總結,把自己的心得分享出來和大家交流。
希望以後再也不出現這種尷尬局面,覺得自己懂,但其實還是不會。
本節透過圖片的形式,整體梳理一下需要掌握的脈路,也是自己學習的路線,整體如下:
圖1.MySQL伺服器調優想法
#圖2.sql優化
#圖3.索引學習