MySQL 慢查詢(xún)?nèi)罩臼桥挪閱?wèn)題 SQL 語(yǔ)句把沼,以及檢查當(dāng)前 MySQL 性能的一個(gè)重要功能。
開(kāi)啟狀態(tài):
查看是否開(kāi)啟慢查詢(xún)功能:
mysql> show variables like 'slow_query%';
+---------------------+------------------------------------+
| Variable_name | Value |
+---------------------+------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /var/lib/mysql/instance-1-slow.log |
+---------------------+------------------------------------+
2 rows in set (0.01 sec)
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
說(shuō)明:
slow_query_log 慢查詢(xún)開(kāi)啟狀態(tài)(on:已開(kāi)啟 off:未開(kāi)啟 )
slow_query_log_file 慢查詢(xún)?nèi)罩敬娣诺奈恢茫ㄟ@個(gè)目錄需要MySQL的運(yùn)行帳號(hào)的可寫(xiě)權(quán)限吁伺,一般設(shè)置為MySQL的數(shù)據(jù)存放目錄)
long_query_time 查詢(xún)超過(guò)多少秒才記錄
配置
臨時(shí)配置:默認(rèn)沒(méi)有開(kāi)啟慢查詢(xún)?nèi)罩居涗浺牵ㄟ^(guò)命令臨時(shí)開(kāi)啟:
mysql> set global slow_query_log='ON';
Query OK, 0 rows affected (0.00 sec)
``
```linux
mysql> set global slow_query_log_file='/var/lib/mysql/instance-1-slow.log';
Query OK, 0 rows affected (0.00 sec)
mysql> set global long_query_time=2;
Query OK, 0 rows affected (0.00 sec)
永久配置:修改配置文件達(dá)到永久配置狀態(tài):
/etc/mysql/conf.d/mysql.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/instance-1-slow.log
long_query_time = 2
配置好后,重新啟動(dòng) MySQL 即可篮奄。
慢sql日志測(cè)試
通過(guò)運(yùn)行下面的命令捆愁,達(dá)到問(wèn)題 SQL 語(yǔ)句的執(zhí)行:
mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
| 0 |
+----------+
1 row in set (2.00 sec)
然后查看慢查詢(xún)?nèi)罩緝?nèi)容:
$ cat /var/lib/mysql/instance-1-slow.log
/usr/sbin/mysqld, Version: 8.0.13 (MySQL Community Server - GPL). started with:
Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock
Time Id Command Argument
/usr/sbin/mysqld, Version: 8.0.13 (MySQL Community Server - GPL). started with:
Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock
Time Id Command Argument
# Time: 2022-05-11T00:38:09.347108Z
# User@Host: root[root] @ localhost [::1] Id: 2
# Query_time: 2.010401 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1652229489;
select sleep(2);
日志參數(shù)解析:
查詢(xún)耗時(shí)(Query_time):2.010401 秒
鎖定時(shí)間(Lock_time):0.000000 秒
檢索記錄行數(shù)(Rows_examined):0條
返回記錄數(shù)(Rows_sent):1條