首页/系统/信创系统运维速查/数据库慢查询的定位
常见问题65 条

数据库慢查询的定位

业务变慢完定位慢 SQL:开慢日志或看当前会话与锁等待,用执行计划确认索引使用;临时以限流与错峰缓解。

信创系统运维速查系统更新于 2026-10-12

找慢 SQL(MySQL 示例)

找慢 SQL(MySQL 示例)
mysql -uroot -p -e "SHOW VARIABLES LIKE 'slow_query_log%'"
mysql -uroot -p -e "SHOW VARIABLES LIKE 'long_query_time'"
mysql -uroot -p -e 'SHOW FULL PROCESSLIST' | head -30
mysql -uroot -p -e 'SHOW ENGINE INNODB STATUS' | head -40   # 锁与事务线索

执行计划

执行计划
mysql -uroot -p -e 'EXPLAIN <慢SQL>'          # 关注 type、rows、Extra
# type=ALL 全表扫描是常见根因:与研发确认加索引或改写
# 临时缓解:并发限流、批任务错峰
慢不一定在库:应用连接池排队、锁等待、磁盘 IO 都会放大耗时,完用日志量化再归因。

易错点

  • 慢日志有 IO 开销:低峰短时开启,查清后按需关闭
  • 只看单条 SQL 不看并发:高峰叠加才是业务卡顿的主因

数据来源与参考

  • MySQL 官方文档(慢查询日志)
  • MySQL 官方文档(EXPLAIN 输出)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌