首頁(yè)技術(shù)文章正文

MySQL中如何定位慢查詢?

更新時(shí)間:2023-04-26 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

做壓測(cè)的時(shí)候有的接口非常的慢,接口的響應(yīng)時(shí)間超過了2秒以上,在運(yùn)維的監(jiān)控系統(tǒng)Skvwalking中,在展示的報(bào)表中可以看到是哪一個(gè)接口比較慢,分析這個(gè)接口,可以看到哪部分比較慢,從而知道SQL的具體的執(zhí)行時(shí)間,定位是哪個(gè)sql出了問題,定位慢查詢推薦以下兩個(gè)方案。

方案一:開源工具

調(diào)試工具:Arthas 

運(yùn)維工具:Prometheus、Skywalking

1682476248124_21.png

方案二:MySQL自帶的慢日志

慢查詢?nèi)罩居涗浟怂袌?zhí)行時(shí)間超過指定參數(shù)(long_query_time,單位:秒,默認(rèn)10秒)的所有SQL語(yǔ)句的日志。如果要開啟慢查詢?nèi)罩荆枰贛ySQL的配置文件(/etc/my.cnf)中配置如下信息:

#開啟 MySQL 慢日志查詢開關(guān)
slow_query_log=1
#設(shè)置慢日志的時(shí)間為2秒,SQL語(yǔ)句執(zhí)行時(shí)間超過2秒,就會(huì)視為慢查詢,記錄慢查詢?nèi)罩?
long_query_time=2

配置完畢之后,通過以下指令重新啟動(dòng)MySQL服務(wù)器進(jìn)行測(cè)試,查看慢日志文件中記錄的信息/var/lib/mysql/localhost-slow.log。

MySQL自帶的慢日志

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!