ubuntu

Ubuntu中如何分析慢查询日志

小樊
52
2025-09-12 04:42:55
栏目: 智能运维

在Ubuntu中分析MySQL慢查询日志可按以下步骤操作:

  1. 确认慢查询日志路径
    通过MySQL命令查看日志文件位置:

    SHOW VARIABLES LIKE 'slow_query_log_file';
    

    默认路径通常为/var/log/mysql/slow.log/var/log/mysql/mysql-slow.log

  2. 使用工具分析日志

    • mysqldumpslow(官方工具):
      按执行时间排序,显示最耗时的慢查询:
      mysqldumpslow -s t /var/log/mysql/slow.log
      
      可选参数:-s c(按出现次数)、-s l(按锁等待时间)。
    • pt-query-digest(Percona工具,推荐):
      生成详细报告,包含总耗时、扫描行数、索引使用情况等:
      pt-query-digest /var/log/mysql/slow.log > slow_analysis.txt
      
      报告中重点关注Total time(总耗时)、Rows examined/Rows sent(扫描行数/返回行数,比例过高可能存在索引问题)。
  3. 关键指标分析

    • 高耗时查询:优先优化Query_time长的SQL,检查是否可添加索引或重写逻辑。
    • 全表扫描:若type=ALLkey=NULL,需为对应字段添加索引。
    • 高频查询:统计重复出现的SQL,优化或缓存结果。
  4. 优化建议

    • 为高频查询字段添加索引,避免全表扫描。
    • 重写复杂SQL,拆分大查询为小步骤,减少嵌套子查询。
    • 调整数据库配置,如增大innodb_buffer_pool_size提升缓存效率。

工具安装

注意事项

0
看了该问题的人还看了