您好,登錄后才能下訂單哦!
這篇文章主要介紹“MySQL慢日志的意思是什么”,在日常操作中,相信很多人在MySQL慢日志的意思是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL慢日志的意思是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
慢日志在日常數據庫運維中經常會用到,我們可以通過查看慢日志來獲得效率較差的 SQL ,然后可以進行 SQL 優化。本篇文章我們一起來學習下慢日志相關知識。
慢日志全稱為慢查詢日志(Slow Query Log),主要用來記錄在 MySQL 中執行時間超過指定時間的 SQL 語句。通過慢查詢日志,可以查找出哪些語句的執行效率低,以便進行優化。
默認情況下,MySQL 并沒有開啟慢日志,可以通過修改 slow_query_log 參數來打開慢日志。與慢日志相關的參數介紹如下:
slow_query_log:是否啟用慢查詢日志,默認為0,可設置為0、1,1表示開啟。
slow_query_log_file:指定慢查詢日志位置及名稱,默認值為host_name-slow.log,可指定絕對路徑。
long_query_time:慢查詢執行時間閾值,超過此時間會記錄,默認為10,單位為s。
log_output:慢查詢日志輸出目標,默認為file,即輸出到文件。
log_timestamps:主要是控制 error log、slow log、genera log 日志文件中的顯示時區,默認使用UTC時區,建議改為 SYSTEM 系統時區。
log_queries_not_using_indexes:是否記錄所有未使用索引的查詢語句,默認為off。
min_examined_row_limit:對于查詢掃描行數小于此參數的SQL,將不會記錄到慢查詢日志中,默認為0。
log_slow_admin_statements:慢速管理語句是否寫入慢日志中,管理語句包含 alter table、create index 等,默認為 off 即不寫入。
一般情況下,我們只需開啟慢日志記錄,配置下閾值時間,其余參數可按默認配置。對于閾值時間,可靈活調整,比如說可以設置為 1s 或 3s 。
在配置文件中,我們可以設置以下幾個慢日志相關參數:
# 慢查詢日志相關配置,可根據實際情況修改 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
下面我們具體看下,慢日志會記錄哪些內容?我們執行一條較慢的查詢 SQL ,來看下在慢日志中的體現。
# 該條SQL執行時間超過閾值 # 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 '%測試%';
如果啟用了慢速查詢日志,并且選擇了 FILE 作為輸出目標,則寫入日志的每個語句都以 # 字符開頭。對于每一組慢SQL,第一行記錄的是該條 SQL 執行的時刻(如果 log_timestamps 參數為 UTC ,則改時間會顯示 UTC 時區時間),第二行記錄的是執行該語句的用戶和 IP 以及鏈接 id ,第三行的幾個字段解釋如下:
Query_time: duration 語句執行時間,以秒為單位。
Lock_time: duration 獲取鎖的時間(以秒為單位)。
Rows_sent: N 發送給 Client 端的行數。
Rows_examined: N 服務器層檢查的行數(不計算存儲引擎內部的任何處理)。
下面兩行分別是此語句執行時候的時間戳和具體慢 SQL 。
在實際環境下,不建議開啟 log_queries_not_using_indexes 參數,此參數打開后可能導致慢日志迅速增長。對于慢日志的篩選與分析,我們可以借助 mysqldumpslow、pt-query-digest 等工具來分析。對于慢日志文件,要定期進行歸檔處理,比如可以暫時關閉慢日志,然后將舊文件重命名,之后再開啟慢日志,這樣就會寫入新的日志文件中,有效減小日志體積。
到此,關于“MySQL慢日志的意思是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。