当数据库中某个查询的执行时间超过设定的阈值时(由参数 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

参数说明

  1. slow_query_log
    • 作用: 控制慢查询日志是否开启。
    • 设置值:
      • OFF:关闭慢查询日志。
      • ON:开启慢查询日志,记录执行时间超过 long_query_time 设置的阈值的查询。
    • 示例设置:
      • slow_query_log=ON 表示慢查询日志已开启。
  2. long_query_time
    • 作用: 设置慢查询的时间阈值。
    • 设置值: 指定以秒为单位的时间。
    • 示例设置:
      • long_query_time=3 表示慢查询的时间阈值设置为 3 秒。即执行时间超过 3 秒的查询会被记录到慢查询日志中。
  3. slow_query_log_file
    • 作用: 指定慢查询日志文件的路径和文件名。
    • 设置值: 指定慢查询日志文件的完整路径。

添加后重启检查:

mysql> show variables like ‘%slow_query%’

mysql>show variables like ‘%long_query_time%’

作者 admin

百度广告效果展示