1. 慢查询日志概述
慢查询日志是MySQL数据库提供的一种性能诊断工具,它记录执行时间超过预设阈值的SQL语句。作为一名数据库管理员,我经常使用这个功能来识别和优化性能瓶颈。
在实际生产环境中,数据库性能问题往往表现为某些查询响应缓慢。这些慢查询会消耗大量服务器资源,影响整体系统性能。慢查询日志就像数据库的"体检报告",能帮助我们精准定位问题SQL。
默认情况下,MySQL的慢查询日志是关闭的,这主要是出于性能考虑。开启日志记录会带来一定的I/O开销,特别是在高并发场景下。因此,我们通常只在需要诊断性能问题时临时开启,或者在开发环境中长期开启。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 慢查询日志的核心参数
2.1 关键配置参数
慢查询日志有几个重要的配置参数需要了解:
slow_query_log:控制是否开启慢查询日志,值为ON或OFFlong_query_time:定义"慢查询"的时间阈值,单位为秒log_queries_not_using_indexes:是否记录未使用索引的查询slow_query_log_file:指定日志文件路径log_output:定义日志输出格式(FILE/TABLE)
提示:在生产环境中,建议将long_query_time设置为1-3秒,具体取决于业务对响应时间的敏感度。对于电商等高并发系统,可能需要设置更严格的值。
2.2 参数设置方法
有两种方式可以设置这些参数:
- 临时设置(重启后失效):
sql复制SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
- 永久设置(修改配置文件):
ini复制[mysqld]
slow_query_log = 1
long_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log_queries_not_using_indexes = 1
3. 开启和使用慢查询日志
3.1 检查当前状态
在开启慢查询日志前,建议先检查当前配置:
sql复制SHOW VARIABLES LIKE 'slow_que
