mysql慢查询日志是什么_mysql性能问题定位方法

P粉602998670
发布: 2025-12-22 18:17:21
原创
268人浏览过
MySQL慢查询日志用于捕获执行超阈值的SQL,需手动启用:临时开启用SET GLOBAL slow_query_log='ON',永久配置需修改my.cnf并重启;分析用mysqldumpslow或pt-query-digest;优化前须EXPLAIN看执行计划,关注type、key、rows和Extra字段。

mysql慢查询日志是什么_mysql性能问题定位方法

MySQL慢查询日志是数据库内置的性能诊断工具,专门用于捕获执行时间超过指定阈值(如1秒、2秒)的SQL语句。它不记录快查询,只聚焦“拖后腿”的语句,是定位性能瓶颈最直接、最常用的起点。

怎么开启和配置慢查询日志

默认关闭,需手动启用:

  • 临时开启:执行 SET GLOBAL slow_query_log = 'ON';,立即生效但重启后失效
  • 查看当前状态:运行 SHOW VARIABLES LIKE 'slow_query_log%';,确认是否开启及日志路径
  • 设置阈值:用 SET GLOBAL long_query_time = 1; 将慢标准设为1秒(注意:该命令在新连接中才生效,或执行 FLUSH PRIVILEGES;
  • 永久生效:编辑 /etc/my.cnf/etc/mysql/my.cnf,添加以下内容并重启MySQL服务:
    slow_query_log = ON
    slow_query_log_file = /var/log/mysql/mysql-slow.log
    long_query_time = 1
    log_queries_not_using_indexes = ON
    (可选,记录未走索引的查询)

如何快速找到真正耗时的SQL

光有日志不够,得靠分析工具提炼重点:

VALL-E
VALL-E

VALL-E是一种用于文本到语音生成 (TTS) 的语言建模方法

VALL-E 142
查看详情 VALL-E
  • mysqldumpslow(MySQL自带):轻量实用,适合初步筛查
    例如:
    mysqldumpslow -s t -t 10 /var/log/mysql/mysql-slow.log → 按总耗时排序,取前10条
    mysqldumpslow -s c -g "JOIN" /var/log/mysql/mysql-slow.log → 统计含JOIN的语句出现频次
  • pt-query-digest(Percona Toolkit):专业级分析,输出详细统计(平均响应、锁等待、扫描行数、95%分位耗时等),支持聚合与报告生成
  • DB-PULSE(可视化工具):无需Agent,Web界面展示Top慢SQL、执行趋势、扫描行/返回行对比,适合团队协同排查

定位到慢SQL后,下一步怎么分析

不能只看耗时,要深入执行过程:

  • EXPLAIN + SQL语句 查执行计划,重点关注:
    type:避免ALL(全表扫描),优先ref/eq_ref/range
    key:是否命中有效索引;possible_keys 是否有可用索引但没被选中
    rows:预估扫描行数,远超结果集数量说明索引效率低或缺失
    Extra:警惕 Using temporary(临时表)、Using filesort(文件排序)、Using where; Using index 是理想状态
  • 对关键SQL补充 SHOW PROFILE(需先 SET profiling = 1;),查看CPU、IO、Sorting等各阶段耗时分布,判断是计算瓶颈还是磁盘读写拖慢
  • 结合业务场景验证:该SQL是否在高并发时段集中触发?参数是否导致索引失效(如隐式类型转换、函数包裹字段)?

几个容易忽略但关键的细节

实际排查中,这些点常决定优化成败:

  • long_query_time 是浮点数,设为1表示“>1.0秒”,0.5秒的查询不会记录;测试时可用 SLEEP(2) 快速验证日志是否生效
  • 日志路径权限必须让MySQL进程可写,否则开启失败且无报错提示
  • 生产环境慎用 log_queries_not_using_indexes,尤其大流量库,可能日志暴增
  • Docker部署时,注意容器内路径(如 /var/lib/mysql/*.slow.log)与宿主机挂载是否一致,否则查不到日志文件
  • IN子句含大量值(如 IN(1,2,...,5000))极易触发慢查询,应考虑改用临时表或分批次处理

以上就是mysql慢查询日志是什么_mysql性能问题定位方法的详细内容,更多请关注php中文网其它相关文章!

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号