当数据库中某个查询的执行时间超过设定的阈值时(由参数 long_query_time
控制),会被记录到慢查询日志中,以便于后续分析和优化数据库性能。
慢查询通常是执行时间较长的查询语句,可能对数据库性能产生负面影响。这些查询可能由于不正确的索引、复杂的查询、大量数据操作或者数据库优化不当等原因导致执行效率低下。
开启慢查询
#/etc/my.cnf
[mysqld]
#一定要在[mysqld]下的下方加入,否则不起效果
slow_query_log=ON
long_query_time=3
slow_query_log_file=/var/lib/mysql/slow-log.log
参数说明
slow_query_log
:- 作用: 控制慢查询日志是否开启。
- 设置值:
OFF
:关闭慢查询日志。ON
:开启慢查询日志,记录执行时间超过long_query_time
设置的阈值的查询。
- 示例设置:
slow_query_log=ON
表示慢查询日志已开启。
long_query_time
:- 作用: 设置慢查询的时间阈值。
- 设置值: 指定以秒为单位的时间。
- 示例设置:
long_query_time=3
表示慢查询的时间阈值设置为 3 秒。即执行时间超过 3 秒的查询会被记录到慢查询日志中。
slow_query_log_file
:- 作用: 指定慢查询日志文件的路径和文件名。
- 设置值: 指定慢查询日志文件的完整路径。
添加后重启检查:
mysql> show variables like ‘%slow_query%’
mysql>show variables like ‘%long_query_time%’