日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

慢 SQL 诊断优化套路包,套路用的对,速度升百倍

發布時間:2025/4/16 数据库 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 慢 SQL 诊断优化套路包,套路用的对,速度升百倍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在DBA的日常工作中,調整個別性能較差的SQL語句是一項富有挑戰性的工作。面對慢SQL,一些DBA會心煩,會沮喪,會束手無措,也會沉著冷靜、斗智斗勇!當中的關鍵在于數據庫管理員如何分析得出SQL語句的執行計劃和如何從SQL語句的執行計劃中發現問題。

下面老王就慢SQL的診斷和優化分享一些常用的套路~

慢SQL診斷

系統層面

檢查系統服務器運行情況,磁盤 I/O 等;

數據庫層面:

1、對于MySQL來說,通過慢日志定位慢SQL;

2、對于慢SQL,查看其執行計劃,分析耗時的原因;

3、如果缺失索引,根據業務需求,創建合適的索引;如果由于SQL語句的寫法有問題,需要根據業務邏輯優化語句的寫法。

實用的SQL診斷工具

1、SQLTXPLAIN

是Oracle專家開發的,用于診斷SQL相關的問題的工具,簡單易用卻功能強大。

對于慢SQL診斷支持很多Optimzer問題:如執行計劃異常、SQL慢、結果不正(Wrong Result)等。

慢SQL優化

由 SQL 編寫導致的慢 SQL 的優化建議:

1、字段類型轉換導致不用索引,如字符串類型的不用引號,數字類型的用引號等,這有可能會用不到索引導致全表掃描;

2、mysql 不支持函數轉換,所以字段前面不能加函數,否則這將用不到索引;

3、不要在字段前面加減運算;

4、字符串比較長的可以考慮索引一部份減少索引文件大小,提高寫入效率;

5、like % 在前面用不到索引;

6、根據聯合索引的第二個及以后的字段單獨查詢用不到索引;

7、不要使用 select *;

?

8、排序請盡量使用升序 ;

9、or 的查詢盡量用 union 代替 (Innodb);

10、復合索引高選擇性的字段排在前面;

11、order by / group by 字段包括在索引當中減少排序,效率會更高。

12、刪除表所有記錄請用 truncate,不要用 delete

13、不讓 mysql 干多余的事情,如:計算

14、在 Innodb上用 select count(*),因為 Innodb 會存儲統計信息;

15、慎用 Oder by rand()。

開源 SQL 優化平臺

對于 SQL 語句的優化,現在有一些開源的SQL優化平臺,這些融入了大量DBA工程師的經驗,我們可以借助這些平臺對 SQL 進行優化。

1、SOAR

地址:https://github.com/XiaoMi/soar/

是一款 SQL 智能優化與改寫工具,由小米運維 DBA 團隊出品,SOAR 主要由語法解析器、集成環境、優化建議、重寫邏輯、工具集五大模塊組成,相比業內其他優秀產品有自己的優勢,不僅能幫助你 rewrite SQL并且能給出一些優化的建議。

?

2、SQLAdvisor

地址:https://github.com/Meituan-Dianping/SQLAdvisor

是由美團點評公司技術工程部DBA團隊(北京)開發維護的一個分析SQL給出索引優化建議的工具。它基于MySQL的原生態詞法解析,結合分析SQL中的其中條件,聚合條件,多表加入關系給出索引優化建議。

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的慢 SQL 诊断优化套路包,套路用的对,速度升百倍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。