中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
MySQL慢查日志

監(jiān)控系統(tǒng)監(jiān)控到我們的程序變慢了,懷疑是sql的原因,要怎么去分析排查呢?一般按照如下幾個步驟進行:

  • 開啟慢查詢日志,設置閥值,將慢sql從日志中抓取出來;
  • 分析慢sql,查看其執(zhí)行計劃;
  • show profile,查詢sql的執(zhí)行細節(jié)和生命周期情況;
  • MySQL數據庫參數調優(yōu)。

本文先來講講慢查日志。

1. 是什么?

MySQL慢查日志是一種記錄執(zhí)行很慢的sql的日志。MySQL中可以通過long_query_time來設置一個閥值,如果執(zhí)行時間超過這個閥值,就會被認為是慢sql,就會記錄到慢查日志中。該閥值默認是10s,即執(zhí)行超過10s的sql就會被記錄。

2. 怎么用?

  • 開啟方法:

MySQL默認是沒有開啟慢查日志的,如果不是調優(yōu)需要的話,不建議開啟,因為這個也會帶來性能的影響。執(zhí)行以下sql可以查詢是否開啟慢查日志以及慢查日志的路徑:

show variables like '%slow_query_log%';
執(zhí)行結果

可以看到默認是off的。執(zhí)行以下sql即可開啟:

set global slow_query_log = 1;
執(zhí)行結果

可以看到,已經變成on了,也就是開啟了。不過這樣設置并不是永久生效,重啟后就失效了,如果要永久生效,就得修改MySQL的配置文件my.cnf,在[mysqld]下增加如下配置:

slow_query_log=1
slow_query_log_file=/var/lib/mysql/sql-slow.log
long_query_time=3
log_output=FILE

增加了這兩行配置后,重啟MySQL就可以了。

  • 修改閥值:

執(zhí)行如下sql可以查看當前設置的閥值:

show variables like 'long_query_time';
執(zhí)行結果

可以看到,當前設置的是10秒。要大于10s才會觸發(fā),等于是不會觸發(fā)的。但是10s這個閥值太大了,我們一般會改小一點,通過以下sql可以修改該值:

set long_query_time = 3;
執(zhí)行結果

那么我們要怎么驗證修改是否生效呢?也就是超過3s的sql到底有沒有被記錄到慢查日志中呢?執(zhí)行如下sql:

select sleep(4);

這條sql就要睡4秒之后才會執(zhí)行,所以最少都要執(zhí)行4秒多,我們設置的閥值是3秒,所以肯定會被記錄。

剛才查看了知道慢查日志名字叫localhost-slow.log,那么到底在哪個目錄下?可以通過執(zhí)行如下命令來查找:

find / -name "localhost-slow.log"
執(zhí)行結果

我們cat一下這個文件,看看剛剛執(zhí)行的select sleep(4)到底有沒有被記錄,結果如下:

執(zhí)行結果

可以看到,確實生效了,sql被記錄到了慢查日志中。

我們還可以通過執(zhí)行如下語句,來查詢當前有多少條慢sql:

show global status like "%Slow_queries%";
執(zhí)行結果
  • 日志分析工具:mysqldumpslow

生產環(huán)境可能會出現很多的慢查日志,如果都要手工分析,也是比較費時的,MySQL提供了慢查日志分析工具,mysqldumpslow。

執(zhí)行如下命令可以查看幫助文檔:

mysqldumpslow --help
幫助文檔

常見命令如下:

# 得到返回記錄集最多的10個sql
mysqldumpslow -s r -t 10 /var/lib/mysql/localhost-slow.log

# 得到訪問次數最多的10個sql
mysqldumpslow -s c -t 10 /var/lib/mysql/localhost-slow.log

# 得到按照時間排序的前10條里面含有左連接的查詢語句
mysqldumpslow -s t -t 10 -g "left join"  /var/lib/mysql/localhost-slow.log

# 一般執(zhí)行上面的語句都要和 | more 一起使用,否則爆屏
mysqldumpslow -s r -t 10 /var/lib/mysql/local

掃描二維碼

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[MySQL]開啟慢查詢日志以及未使用索引SQL日志
發(fā)現瓶頸 - Profiling(程序剖析) -MySQL Profiling
快速開啟MySQL慢日志查詢的方法
mysql開啟查看慢查詢日志
mysql慢查詢日志分析
Mysql 慢查詢和慢查詢日志分析
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服