mysql的慢查詢日誌功能 Mysql慢查詢日誌

2021-10-18 11:46:35 字數 2317 閱讀 2990

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

mysql的慢查詢日誌功能 MySQL 慢查詢日誌

簡介 mysql 慢查詢日誌是排查問題 sql 語句,以及檢查當前 mysql 效能的乙個重要功能。檢視是否開啟慢查詢功能 mysql mysql show variables like slow query variable name value slow query log off slow q...

mysql的慢查詢日誌功能 MySQL 慢查詢日誌

mysql 慢查詢日誌 簡介mysql 慢查詢日誌是排查問題 sql 語句,以及檢查當前 mysql 效能的乙個重要功能。檢視是否開啟慢查詢功能 mysql show variables like slow query variable name value slow query log off s...

MySQL開啟慢查詢日誌功能的方法

mysql慢查詢日誌對於跟蹤有問題的查詢非常有用,可以分析出當前程式裡是否有很耗費資源的sql語句,這是乙個有用的日誌。它對於效能的影響不大 假設所有查詢都很快 並且強調了那些最需要注意的查詢 丟失了索引或索引沒有得到最佳應用 那如何開啟mysql的慢查詢日誌記錄呢?開啟慢查詢日誌,可以讓mysql...