恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

MySQL 慢查询排查完整流程

  • 首页
  • 资讯中心
  • /
  • MySQL 慢查询排查完整流程

相关资讯

C/C++字符串反转算法详解:从指针操作到性能优化实战 2026/8/2 17:49:07
低功耗物联网设备电池寿命优化方案 2026/8/5 21:54:22
整理抖音长视频要点太慢不会梳理?试试实用的抖音视频总结方法 2026/8/2 17:49:09

最新资讯

Python文件读取全攻略:从基础操作到性能优化与最佳实践
iOS应用砸壳解密全流程:从工具链到安全风险剖析
三相功率公式辨析:√3UIcosφ与3UIcosφ的正确使用场景
Prometheus自定义指标监控实战:从数据模型到业务可观测性
LaTeX论文贡献点列表排版:从默认itemize到enumitem宏包高级定制
Python列表反转:切片、reverse()与reversed()的性能对比与实战应用

今日推荐

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题
LabVIEW异步调用实战:解决界面卡顿与并行处理难题
飞书局域网文件传输实战:3种方案实现高速点对点传输

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

MySQL 慢查询排查完整流程

发布时间:2026/8/17 10:12:18
MySQL 慢查询排查完整流程 MySQL 慢查询排查完整流程这是一套可直接上手的排查方案从发现问题到定位根因再到优化落地覆盖全链路。第一步确认慢查询是否存在1.1 开启慢查询日志-- 查看当前状态 SHOW VARIABLES LIKE slow_query%; SHOW VARIABLES LIKE long_query_time; -- 临时开启重启失效 SET GLOBAL slow_query_log ON; SET GLOBAL long_query_time 1; -- 超过1秒记录 SET GLOBAL log_queries_not_using_indexes ON;1.2 查看慢查询数量与内容# 统计慢查询次数 SHOW GLOBAL STATUS LIKE %Slow_queries%; # 查看最近慢查询日志文件路径 SHOW VARIABLES LIKE slow_query_log_file;第二步分析慢查询语句2.1 使用 EXPLAIN 分析执行计划EXPLAIN SELECT * FROM orders WHERE status 1 ORDER BY created_at DESC LIMIT 100;重点关注字段字段危险信号typeALL全表扫描、index索引全扫rows远大于预期返回行数ExtraUsing filesort文件排序、Using temporary临时表2.2 使用 SHOW PROFILE 查看耗时分布-- 开启 profiling SET profiling 1; -- 执行你的慢查询 SELECT * FROM orders WHERE ...; -- 查看所有查询的耗时 SHOW PROFILES; -- 查看具体某个 Query_ID 的详细耗时 SHOW PROFILE FOR QUERY 1;关键看Sending data、Sorting result、Creating tmp table等步骤的耗时占比。第三步常见原因与对应解决方案3.1 没走索引 → 加索引-- 检查是否有可用索引 SHOW INDEX FROM orders; -- 添加复合索引注意字段顺序等值条件在前范围条件在后 ALTER TABLE orders ADD INDEX idx_status_created (status, created_at);3.2 索引失效 → 改写 SQL常见导致索引失效的操作对索引列使用函数WHERE DATE(created_at) 2024-01-01隐式类型转换WHERE user_id 123user_id 是 int前导模糊匹配WHERE name LIKE %张三3.3 数据量过大 → 分页优化 / 归档深分页优化示例-- 原始写法越往后越慢 SELECT * FROM orders ORDER BY id LIMIT 100000, 20; -- 优化写法子查询用覆盖索引 SELECT * FROM orders WHERE id (SELECT id FROM orders ORDER BY id LIMIT 100000, 1) ORDER BY id LIMIT 20;数据归档​ 将历史数据迁移到归档表或分区表。3.4 锁等待 → 排查锁冲突-- 查看当前正在等待锁的事务 SELECT * FROM information_schema.INNODB_TRX\G -- 查看锁等待关系 SELECT * FROM sys.schema_table_lock_waits; -- 强制结束阻塞事务慎用 KILL [trx_mysql_thread_id];3.5 SQL 写得烂 → 重写典型坏写法SELECT *→ 只取需要的列子查询嵌套过深 → 改用 JOIN 或临时表OR条件 → 拆成 UNION ALL循环查询 → 批量查询 IN第四步系统层面排查4.1 查看数据库配置是否合理-- 关键参数检查 SHOW VARIABLES LIKE innodb_buffer_pool_size; -- 建议设为内存的60%-70% SHOW VARIABLES LIKE tmp_table_size; -- 临时表大小限制 SHOW VARIABLES LIKE max_connections; -- 连接数是否过高4.2 查看服务器资源# CPU、内存、IO 情况 top iostat -x 1 free -h如果 CPU 高但 IO 低 → SQL 计算量大或索引不合理如果 IO 高但 CPU 低 → 磁盘瓶颈考虑 SSD 或增加 buffer pool第五步建立长效机制5.1 定期巡检脚本-- 查询当前运行时间最长的SQL SELECT * FROM information_schema.PROCESSLIST WHERE COMMAND ! Sleep ORDER BY TIME DESC LIMIT 10; -- 查询全表扫描次数最多的表 SELECT * FROM sys.schema_unused_indexes;5.2 监控告警设置long_query_time 1持续采集慢查询日志使用 Percona Toolkit 的pt-query-digest分析日志规律接入 Prometheus Grafana 监控 QPS、慢查询数量趋势一句话总结排查思路先确认慢在哪日志profile再看为什么慢explain索引最后对症下药加索引/改SQL/扩资源。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号