mysql調優小總結

2021-10-25 16:14:30 字數 698 閱讀 9081

1.回表

索引是非主鍵索引的時候,先根據該索引查詢到主鍵索引,主鍵索引再去查詢該主鍵對應的記錄,這種操作叫回表。

2.覆蓋索引

只查詢索引值,不回表就是覆蓋索引。

select b from table where b='***';

上文如果查詢欄位b這個字段恰好是索引,那麼不需要去找主鍵索引,不需要回表就是索引覆蓋。

3.最左匹配原則

比如你現在有三個列a,b,c你現在需要根據條件a查詢 又要根據條件a+b查詢那麼你需要建幾個索引。你只需要建乙個組合索引:a+b 就可以滿足上面兩個需要,因為最左匹配原則,a+b的索引在走只有條件a的索引的時候,最左匹配原則就起作用了,a+b最左是a開始的所以a的條件也會走索引a+b,但是比如你的條件是根據b乙個條件查詢,就不會走a+b的索引,從前到後a在左邊,b來的話從左邊不滿足最左匹配原則。所以不走索引a+b。

4.索引下推

就是在復合索引裡面先過濾一遍 完了之後再回表,就是減少io次數。只適合復合索引,比如沒有索引下推,復合索引每個單獨去回表匹配記錄,比如a+b的復合索引,沒有下推,先匹配a的索引回表,再匹配b的索引回表,如果索引下推,就是在執行復合索引a+b的時候先把不滿足的條件過濾掉,只留下滿足的條件,在索引這一層過濾,完了再回表。減少回表的io次數。

mysql調優總結

explain 函式檢視執行計畫,索引使用情況,詳情 看是否使用了大字段,為列選擇合適的資料型別,查詢結果不需要大字段,就不要查詢大字段 是否有迴圈查詢 比較運算子能用 就不用 增加了索引的使用機率。明知只有一條查詢結果,那請使用 limit 1 limit 1 可以避免全表掃瞄,找到對應結果就不會...

mysql 調優 Mysql調優

表設計 1 禁止使用外來鍵 2 多表中的相同列,必須保證列定義一致 3 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表 4 表必須包含gmt create和gmt modified欄位,即表必須包含記錄建立時間和修改時間的字段 5 單錶一到兩年內資料量超過500w或資料...

MySQL效能調優過程總結

1.show full processlist 可用於生產環境現場檢視哪些鎖存在。2show innodb status 用於檢視死鎖。3.slow log 使用者檢視慢查詢 4.show status 使用者調優my.cnf引數,具體詳見 修改引數示例 set global key buffer ...