mysql慢查詢日誌
資料庫的慢查詢是影響專案效能的一大因素,對於資料庫我們要優化sql,首先要找到需要優化的sql,這就需要我們知道sql執行時間等資訊,除了使用show profiles;外,mysql也提供了「慢查詢日誌」功能,用來記錄查詢時間超過某個設定值的sql,這將極大程度幫助我們快速定位到癥結所在,以便對症下藥。
一、慢查詢配置
關於慢查詢日誌,主要涉及三個引數:
slow_query_log :是否開啟慢查詢日誌功能(必填)
long_query_time :超過設定值,將被視作慢查詢,並記錄至慢查詢日誌檔案中(必填)
slow_query_log_file :慢查詢日誌檔案(不必填),可以通過show variables like '%slow_query%';查詢日誌位置
開啟慢查詢日誌有兩種方式:
1. 通過命令列
不需要重啟命令列,臨時性的,退出mysql終端就失效。
# 以下操作管理員才有許可權
mysql> set global slow_query_log = on;
query ok, 0 rows affected (0.04 sec)
# 設定查詢「超時」時間(這裡為了方便日誌列印,將超過0.001s的都作為慢查詢)
mysql> set global long_query_time = 0.001;
query ok, 0 rows affected (0.00 sec)
2. 通過配置檔案
需要重啟mysql
# 慢日誌相關配置
slow_query_log = on
long_query_time = 0.001
slow_query_log_file = /usr/local/mysql/data/slow.log
二、慢日誌查詢
如果操作正確,那麼在日誌裡面就會看到類似下面的:
# time: 200303 14:54:38
# user@host: wangjun[wangjun] @ localhost
# thread_id: 47 schema: scujoo qc_hit: no
# query_time: 0.024923 lock_time: 0.000130 rows_sent: 3488 rows_examined: 3488
# rows_affected: 0 bytes_sent: 354872
set timestamp=1583218478;
select * from account;
/usr/sbin/mysqld, version: 10.3.15-mariadb-1-log (raspbian testing-staging). started with:
tcp port: 0 unix socket: /run/mysqld/mysqld.sock
time id command argument
# time: 200303 15:05:30
# user@host: [root] @ localhost
# thread_id: 8 schema: mysql qc_hit: no
# query_time: 0.001743 lock_time: 0.000168 rows_sent: 1 rows_examined: 1
# rows_affected: 0 bytes_sent: 252
use mysql;
set timestamp=1583219130;
show variables like 'datadir';
# user@host: [root] @ localhost
# thread_id: 10 schema: qc_hit: no
# query_time: 0.007002 lock_time: 0.000238 rows_sent: 36 rows_examined: 69
# rows_affected: 0 bytes_sent: 2391
set timestamp=1583219130;
select concat('select count(*) into @discard from `',
table_schema, '`.`', table_name, '`')
from information_schema.tables where table_schema<>'information_schema' and table_schema<>'performance_schema' and ( engine='myisam' or engine='aria' );
# time: 200303 15:06:41
mongo日誌視覺化
原始mongod.log格式 2020 11 26t21 33 45.896 0800 i network listener connection accepted from 10.10.6.192 52138 1663452 121 connections now open 2020 11 26t...
mysql開啟慢查詢日誌 MySQL慢日誌體系建設
慢查詢日誌是mysql提供的一種日誌記錄,用來記錄在mysql中響應時間超過閾值的sql語句,在很大程度上會影響資料庫整體的效能,是mysql優化的乙個重要方向。在58的雲db平台建設中,慢sql系統作為乙個非常重要功能模組,不僅是dba日常運維使用,我們也希望通過該功能可以協助開發人員更快速定位業...
mysql慢日誌時間 MySQL慢查詢日誌優化
一 慢查詢日誌概念 mysql的慢查詢日誌是mysql提供的一種日誌記錄,它用來記錄在mysql中響應時間超過閥值的語句,具體指執行時間超過long query time值的sql,則會被記錄到慢查詢日誌中。long query time的預設值為10,意思是執行10s以上的語句。預設情況下,mys...