MySQL 慢查询日志

时间:2022-09-16 10:08:21
MySQL 慢查询日志
随着数据量的不断增长,性能尤为重要,或许经过优化及好的解决方案,使你当前感觉不到性能问题的存在,但随着数据量的不断增长,
从百万到千万再到几亿,可能问题会随之而来,为了能更好的掌握数据库的运行效率,添加慢日志查询是很有必要的。
查看日志相关信息:

show variables like 'slow%'



show variables like 'long_query%'
set global slow_query_log='ON' -- 开启慢查询日志
set global slow_query_log_file='/opt/lampp/var/mysql/host-10-10-10-28-slow.log'; -- 设置慢查询日志文件


参数如下:
-slow_launch_time
如果创建线程的时间超过该秒数,服务器增加Slow_launch_threads状态变量。

-slow_query_log
是否记录慢查询。用long_query_time变量的值来确定“慢查询”。

-slow_query_log_file
慢日志文件路径

-long_query_time
慢日志执行时长(秒),超过设定的时间才会记日志

日志配制:修改my.ini文件为以下内容
#开启慢日志 1:开启 0:关闭
slow_query_log=1

#设置日志时长 单位(秒)
long_query_time = 2

测试慢日志记录信息:
- 查询总记录数

- collegets-slow.log日志信息(文件默认存放在datadir目录下)
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld, Version: 5.5.23-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld, Version: 5.5.23-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time Id Command Argument
# Time: 121205 16:09:31
# User@Host: root[root] @ [192.168.17.105]
# Query_time: 2.171875 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 2381725
SET timestamp=1354694971;
SELECT COUNT(*)
FROM usersession;