MySQL的慢查詢日誌
阿新 • • 發佈:2018-12-19
簡介
慢查詢定義為執行時間超過long_query_time的查詢,預設為10秒。
預設情況下,僅記錄非管理語句以及使用索引的查詢。在日誌中包含沒有索引的查詢(無論花費多少時間)都特別有用,並且使用log_queries_not_using_indexes設定進行設定。將不記錄對包含0行或1行的表的查詢。
該日誌包含執行時間超過long_query_time秒的SQL查詢,預設為10秒,以及必須檢查超過min_examined_row_limit行的查詢。獲取鎖的時間不包括在此計算中,只有解決查詢的時間。
開啟方式
寫在配置檔案中
修改配置檔案/etc/my.cnf中的mysqld配置項
slow_query_log=ON #開啟慢查詢日誌 slow_query_log_file=slow_query.log #慢查詢日誌檔名
在MySQL內部啟動
下面2種方式都可以開啟
mysql> set @@global.slow_query_log=on;
mysql> set global slow_query_log=on;
檢視
慢查詢日誌是是文字格式的,所以可以用tail,head,vim,cat等文字編輯工具檢視。也可以用mysqldumpslow工具通過彙總資訊來簡化該過程。
當然了也可以在mysql內部檢視,方法如下
mysql> SELECT * FROM mysql.slow_log \G
相關的常用變數
- log_slow_queries={ON|OFF} 不推薦使用–log-slow-queries選項,並在MySQL 5.6中刪除它(以及log_slow_queries系統變數)。 而是使用–slow_query_log選項啟用慢查詢日誌,使用–slow_query_log_file = file_name選項設定慢查詢日誌檔名。
- slow_query_log={ON|OFF} 開啟慢查詢日誌
- slow_query_log_file= 慢查詢日誌檔名
- log_output={FILE|TABLE|NONE} 儲存在檔案/表/NONE中
- log_slow_filter=admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk 慢查詢日誌過濾的型別