MySQL優化 慢查詢日誌

2021-10-10 07:31:29 字數 1333 閱讀 5466

mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long_query_time值的sql,則會被記錄到慢查詢日誌中。

當然,如果不是調優需要的話,一般不建議啟動該引數,因為開啟慢查詢日誌會或多或少帶來一定的效能影響。

開啟了慢查詢日誌後,什麼樣的sql才會記錄到查詢日誌裡面?

這個是由引數long_query_time控制,預設情況下long_query_time的值為10秒

檢視命令:show variables like 'long_query_time%';

注: 永久設定慢查詢日誌開啟,以及設定慢查詢日誌時間臨界點(不建議)

linux中,mysql配置檔案一般預設在 /etc/my.cnf 更改對應引數即可

設定閥值命令:set global long_query_time=3 (修改為閥值到3秒鐘的就是慢sql)

為什麼設定後看不出變化:

檢視慢查詢日誌:

cat -n /data/mysql/mysql-slow.log

從慢查詢日誌中,我們可以看到每一條查詢時間高於3s 的sql語句,並可以看到執行的時間是多少。

比如上面,就表示 sql語句  select * from comic where comic_id < 1952000;  執行時間為3.902864秒,超出了我們設定的慢查詢時間臨界點3s,所以被記錄下來了

檢視有多少條慢查詢記錄:show global status like '%slow_queries%';

在生產環境中,如果要手工分析日誌,查詢、分析sql,顯然是個體力活,mysql提供了日誌分析工具 mysqldumpslow

工作常用參考:

建議:為方便 可以結合 | 和 more 使用,否則可能出現爆屏

mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log | more

MySQL優化篇 慢查詢日誌

mysql的慢查詢日誌是mysql提供的一種日誌記錄,他用來記錄在mysql中響應時間超過閾值的語句,具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。long query ti...

MySQL慢日誌優化

慢日誌的效能問題 造成 i o 和 cpu 資源消耗 慢日誌通常會掃瞄大量非目的的資料,自然就會造成 i o 和 cpu 的資源消耗,影響到其他業務的正常使用,有可能因為單個慢 sql 就能拖慢整個資料庫的效能,而且這種慢 sql,在實際業務場景下,通常都是程式發起數個 sql 請求,通過 show...

mysql慢查詢日誌開啟與優化

mysql 開啟慢查詢日誌 show variables like slow query log 檢視慢查詢日誌是否開啟 show variables like slow query log file 檢視慢查詢日誌儲存位置 show variables like log queries not u...