MySQL效能問題理解

2021-09-24 17:13:22 字數 945 閱讀 5247

備註:問題摘抄自慕課網張一勤老師

為什麼 group by 的效率比較低?

group by 是將資料分組,這其中實際也會涉及到排序的操作。如果你的資料量很大,那麼,這個排序過程可能是非常慢的。所以,排序的過程會降低 sql 語句的執行效率。

將資料全量查出,在程式中處理,這樣好嗎?

這樣肯定是不合適的。因為這樣做:大資料量的傳輸很耗時、消耗機器的記憶體、大資料量的處理本身也非常慢。

group by的常用優化方案

效率低的根本原因就是因為資料量大導致的,所以,想要做優化,核心思想就是降低資料量。可以在 group by 之前把需要過濾的資料通過 where 條件給出;給 group by 的相關字段加上索引等等。

判斷一條資料記錄是否在一張表中

這個判斷最高效的方式當前是判斷主鍵;如果不能通過主鍵判斷,需要 where 去查詢帶有索引的字段列;如果需要判斷的列沒有索引,mysql 是需要掃瞄資料記錄的,效率最低。

哪些字段型別適合加索引 ?哪些字段型別不適合加索引 ?你能解釋清楚嗎 ?

其實,對於字元型別,也並不是絕對不能加索引的。資料庫常用的索引規範如下:

1、表的主鍵、外來鍵必須有索引;

2、資料量超過300的表應該有索引;

3、經常與其他表進行連線的表,在連線欄位上應該建立索引;

4、經常出現在where子句中的字段,特別是大表的字段,應該建立索引;

5、索引應該建在選擇性高的字段上;

6、索引應該建在小字段上,對於大的文字字段甚至超長字段,不要建索引;

7、復合索引的建立需要進行仔細分析;盡量考慮用單字段索引代替;

8、頻繁進行資料操作的表,不要建立太多的索引;

9、刪除無用的索引,避免對執行計畫造成負面影響。

mysql效能問題

最近專案使用mysql資料庫遇到了效能問題。單錶400w以上資料時,增,刪,改,查 的速度都明顯下降。我們是做呼叫中心的,平均1秒鐘就要處理20個呼叫,所以 最最保守的計算 1秒鐘也要對單錶進行20次插入操作,還有更多的查詢操作,所以對效能要求略高。有點兒跑題。遇到了問題就要解決,優化!我們優化的步...

mysql 效能問題

偶然發現mysql的這個問題 note innodb page cleaner 1000ms intended loop took 上面跑的是mysql5.7 應用就是個zabbix buffpool size 35g 總32核心和64g 這個問題基本的出現 應該就是你的innodb 的io 能力存...

mysql 效能檢視 MySQL查詢效能問題排查

mysql資料庫的效能問題排查是十分複雜的,具體方法視場景而定,這裡只做大致思路分析。1.整體考慮導致查詢效能低下的各種因素 導致sql查詢變慢的原因是多元化的,在遇到問題時首先要有乙個全方位的思考 網路問題導致 應用層導致 中是否有不合理的查詢 快取失效導致查詢風暴耗盡磁碟資源 mysql伺服器效...