mysql效能優化 二

2021-09-13 14:12:25 字數 1399 閱讀 3727

使用profiling可以檢視sql的占用cpu ,i/o的使用情況,具體的使用方法為:

1.set pfofiling=1;

2.select ********* (需要分析的sql)

3.show profiles;

之後就會出現對應的查詢序列的id,有對應的cpu占用的時間

會有狀態資訊,io.cpu等等資訊

簡要文字說明:首先我們會先查詢驅動表,然後根據驅動表的查詢結果區輪詢被驅動表,具體的實現邏輯如下

1.盡量使用小結果集,驅動大結果集

原因:join的底層邏輯決定了,驅動表的結果會遍歷輪詢被驅動表,如果驅動表的資料集很大,那麼遍歷次數就會很多了

2.保證被驅動表的join欄位是被索引到的

原因:他是有驅動表根據join段的值區查詢表的,如果是join的索引到的字段,他就走索引,提高查詢效率

3.加大join buffer

原因:多表join的時候,會用到join buffer,如果不夠大,它會進行分段,會消耗i/o

1.排序字段盡量所用我們的索引字段

原因:我們innodb底層的索引使用的b+trees,它的資料存放在葉子節點,且有序的

2.加大max_length_for_sort_data,

原因:從而使用第二種方式,空間來換時間

3.去掉不必要的字段

原因:排序會把需要的字段載入到記憶體,消耗io

4.增大sort_buffer_size

原因:減少分段

1.具體的思考流程

2.如何開啟慢查詢日誌:

最後說一句:不是所有的mysql效能問題都可以通過優化mysql來解決的,有事在應用層面,業務層面來思考也是很必要的

mysql 效能優化(二)

今天突然看到一年前寫的 mysql 優化 一 感覺有些誤人子弟。今天再補充一些東西。關於引擎選擇,從理論上 和 實際上 可能會有差距,所以,對待mysql 要有實驗精神。一般來說,myisam 適合 1.做很多count 的計算。2.插入不平凡,查詢非常頻繁。3.沒有事務 innordb 非常適合 ...

mysql 效能優化(二)

今天突然看到一年前寫的 mysql 優化 一 感覺有些誤人子弟。今天再補充一些東西。關於引擎選擇,從理論上 和 實際上 可能會有差距,所以,對待mysql 要有實驗精神。一般來說,myisam 適合 1.做很多count 的計算。2.插入不平凡,查詢非常頻繁。3.沒有事務 innordb 非常適合 ...

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...