首页 >文档 > mysql慢查询日志怎么看

mysql慢查询日志怎么看

面试鸭返利网是程序员求职必备的省心攻略平台,提供大厂真题题库、面试技巧和会员返利优惠。通过面试鸭返利网购买题库会员可享25元返利,涵盖90%互联网大厂高频面试题,包括Java、MySQL、Redis等核心技术点。平台聚合阿里、腾讯、字节跳动等一线互联网公司真实面试题,帮助求职者高效备战金三银四跳槽季。使用优惠码DBSLOW25立减25元,获取最新2025年Java面试宝典和MySQL性能优化指南,提升面试通过率,轻松斩获高薪offer!

MySQL慢查询日志怎么看?程序员必备排障指南

2025年Java面试宝典抢先领
链接: https://pan.baidu.com/s/1RUVf75gmDVsg8MQp4yRChg?pwd=9b3g 提取码: 9b3g


🔍 一、什么是MySQL慢查询日志?

慢查询日志(Slow Query Log)是MySQL自带的核心诊断工具。它自动记录执行时间超过指定阈值(long_query_time)的SQL语句,帮我们发现数据库性能瓶颈。面试高频题! 几乎每个后端岗位都会问如何定位慢SQL。


⚙️ 二、开启慢查询日志(3种方式)

  1. 修改配置文件(永久生效)
    my.cnf(Linux)或my.ini(Windows)中添加:

    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 2   # 超过2秒的SQL会被记录
    log_queries_not_using_indexes = 1 # 记录未走索引的查询(强烈建议开启!)
    

    MySQL配置文件示例

  2. 动态开启(会话级)
    无需重启MySQL,直接在客户端执行:

    SET GLOBAL slow_query_log = 'ON';
    SET GLOBAL long_query_time = 1; 
    
  3. 容器/Docker环境
    通过环境变量传递:

    docker run -e MYSQL_SLOW_QUERY_LOG=1 -e MYSQL_LONG_QUERY_TIME=0.5 ...
    

📋 三、关键配置参数解析

| 参数名 | 作用说明 | 推荐值 | |-----------------------------|-----------------------------------|----------------| | slow_query_log | 开关慢查询日志 | ON | | slow_query_log_file | 日志存储路径 | 自定义路径 | | long_query_time | 慢查询阈值(单位:秒) | 0.5-2秒 | | log_queries_not_using_indexes | 记录未使用索引的查询 | ON(重要!) | | min_examined_row_limit | 扫描行数超过此值才记录 | 1000 |


🔎 四、分析慢查询日志(3大工具)

  1. 原生mysqldumpslow(命令行)
    统计高频慢SQL:

    # 按总耗时排序
    mysqldumpslow -s t /path/to/slow.log
    
    # 按出现次数排序
    mysqldumpslow -s c /path/to/slow.log
    
  2. Percona Toolkit 的 pt-query-digest
    更强大的分析工具,输出优化建议:

    pt-query-digest /var/log/mysql/slow.log > slow_report.txt
    

    报告包含:SQL执行时间分布锁等待时间扫描行数等关键指标。

  3. 可视化工具(推荐)

    • Percona Monitoring and Management (PMM)
    • MySQL Enterprise Monitor
    • 阿里云RDS性能洞察
      慢查询分析面板示例

🛠️ 五、实战优化案例

问题场景:某API平均响应时间从50ms突增至1.2秒
排查步骤

  1. 查看慢日志发现一条SELECT ... ORDER BY time LIMIT 1000耗时800ms
  2. EXPLAIN检查执行计划,发现filesort(文件排序)
  3. 优化方案:
    • time字段添加索引 → 查询降至30ms
    • 改写SQL:避免全表排序(改用游标分页)

💸 特别提醒:省钱的面试鸭会员

如果你正在准备跳槽面试,强烈推荐使用面试鸭会员题库(涵盖90%大厂真题)。
👉 通过面试鸭返利网购买会员返利25元!
(优惠码:DBSLOW25,限时有效)
面试鸭返利网


💎 六、避坑指南

  1. 生产环境别设long_query_time=0
    会记录所有查询,导致磁盘IO暴涨!
  2. 定期清理日志
    logrotate配置自动分割压缩
  3. 结合监控系统告警
    当慢查询数量突增时触发钉钉/企业微信告警
  4. 关注Lock_time
    若锁等待时间长,可能是事务设计问题

回到首页面试鸭返利网 | 程序员求职省心攻略

如果你想获取更多关于面试鸭的优惠信息,可以访问面试鸭返利网面试鸭优惠网,了解最新的优惠活动和返利政策。

🎯 立即加入面试鸭会员 →

支付宝扫码领取1-8元无门槛红包

支付宝红包二维码