一文看懂mysql資料庫查詢優化的24條建議

2019-10-06     波波說運維

概述

MySQL是一個強大的開源資料庫。隨著MySQL上的應用越來越多,MySQL逐漸遇到了瓶頸。這裡提供一些關於Mysql 資料庫查詢優化的24條優化建議,僅供參考。


Mysql 查詢優化

1、使用慢查詢日誌,找出執行慢的查詢。


2、使用 EXPLAIN 來決定查詢功能是否合適。

3、經常測試你的查詢,看是否需要做性能優化

性能可能會隨著時間的變化而變化。

4、避免在整個表上使用count(*) ,它可能會將整個表鎖住。

5、保持查詢一致,這樣後續類似的查詢就能使用查詢緩存了。

6、如果合適,用 GROUP BY 代替 DISTINCT。

7、在 WHERE、GROUP BY 和 ORDER BY 的列上加上索引。

8、保證索引簡單,不要在同一列上加多個索引。

9、有時,MySQL 會選擇錯誤的索引,這種情況使用 USE INDEX。


10、使用 SQL_MODE=STRICT 來檢查問題。

11、索引欄位少於5個時,UNION 操作用 LIMIT,而不是 OR。

12、使用 INSERT ON DUPLICATE KEY 或 INSERT IGNORE 來代替 UPDATE,避免 UPDATE 前需要先 SELECT。

13、使用索引欄位和 ORDER BY 來代替 MAX。

14、避免使用 ORDER BY RAND()。

15、LIMIT M,N 在特定場景下會降低查詢效率,有節制使用。

16、使用 UNION 來代替 WHERE 子句中的子查詢。

17、對 UPDATE 來說,使用 SHARE MODE 來防止排他鎖。

18、重啟 MySQL 時,記得預熱資料庫,確保將數據加載到內存,提高查詢效率。

19、使用 DROP TABLE ,然後再 CREATE TABLE ,而不是 DELETE FROM ,以刪除表中所有數據。

20、最小化你要查詢的數據,只獲取你需要的數據,通常來說不要使用 *。

21、考慮持久連接,而不是多次建立連接,已減少資源的消耗。

22、基準查詢,包括伺服器的負載,有時一個簡單的查詢會影響其他的查詢。

23、當伺服器的負載增加時,使用SHOW PROCESSLIST來查看慢的/有問題的查詢。

24、在存有生產環境數據副本的開發環境中,測試所有可疑的查詢。


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~


文章來源: https://twgreatdaily.com/zh-tw/j0EKom0BMH2_cNUgzArb.html