慢日志全稱為慢查詢?nèi)罩荆⊿low Query Log),主要用來記錄在 MySQL 中執(zhí)行時間超過指定時間的 SQL 語句。通過慢查詢?nèi)罩荆梢圆檎页瞿男┱Z句的執(zhí)行效率低,以便進(jìn)行優(yōu)化。
默認(rèn)情況下,MySQL 并沒有開啟慢日志,可以通過修改 slow_query_log 參數(shù)來打開慢日志。與慢日志相關(guān)的參數(shù)介紹如下:
一般情況下,我們只需開啟慢日志記錄,配置下閾值時間,其余參數(shù)可按默認(rèn)配置。對于閾值時間,可靈活調(diào)整,比如說可以設(shè)置為 1s 或 3s 。
在配置文件中,我們可以設(shè)置以下幾個慢日志相關(guān)參數(shù):
# 慢查詢?nèi)罩鞠嚓P(guān)配置,可根據(jù)實際情況修改 vim /etc/my.cnf [mysqld] slow_query_log = 1 slow_query_log_file = /data/mysql/logs/slow.log long_query_time = 1 log_timestamps = SYSTEM log_output = FILE
下面我們具體看下,慢日志會記錄哪些內(nèi)容?我們執(zhí)行一條較慢的查詢 SQL ,來看下在慢日志中的體現(xiàn)。
# 該條SQL執(zhí)行時間超過閾值 # Time: 2021-05-13T17:38:03.687811+08:00 # User@Host: root[root] @ [192.168.85.0] Id: 2604943 # Query_time: 1.099889 Lock_time: 0.000144 Rows_sent: 39 Rows_examined: 45305 SET timestamp=1620898683; select * from test_table where col_name like '%測試%';
如果啟用了慢速查詢?nèi)罩?,并且選擇了 FILE 作為輸出目標(biāo),則寫入日志的每個語句都以 # 字符開頭。對于每一組慢SQL,第一行記錄的是該條 SQL 執(zhí)行的時刻(如果 log_timestamps 參數(shù)為 UTC ,則改時間會顯示 UTC 時區(qū)時間),第二行記錄的是執(zhí)行該語句的用戶和 IP 以及鏈接 id ,第三行的幾個字段解釋如下:
下面兩行分別是此語句執(zhí)行時候的時間戳和具體慢 SQL 。
在實際環(huán)境下,不建議開啟 log_queries_not_using_indexes 參數(shù),此參數(shù)打開后可能導(dǎo)致慢日志迅速增長。對于慢日志的篩選與分析,我們可以借助 mysqldumpslow、pt-query-digest 等工具來分析。對于慢日志文件,要定期進(jìn)行歸檔處理,比如可以暫時關(guān)閉慢日志,然后將舊文件重命名,之后再開啟慢日志,這樣就會寫入新的日志文件中,有效減小日志體積。
以上就是MySQL 慢日志相關(guān)知識總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于MySQL 慢日志的資料請關(guān)注腳本之家其它相關(guān)文章!
標(biāo)簽:龍巖 西寧 無錫 麗水 自貢 徐州 迪慶 南充
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL 慢日志相關(guān)知識總結(jié)》,本文關(guān)鍵詞 MySQL,慢,日志,相關(guān),知識,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。