整理圣保罗服务器 MySQL 慢查询导致业务变慢的排查与优化实战。
慢查询会拖慢整个业务。以下是实战。
一、确认现象 - 接口响应变慢 - 数据库负载升高 - 高峰期更明显
二、定位 1) 开启慢查询日志 2) 用 EXPLAIN 分析执行计划 3) 用 performance_schema 或 profiling 定位耗时 4) 检查锁等待与并发
三、常见原因 1) 缺索引或索引失效 2) 大表全表扫描 3) 隐式类型转换 4) 复杂 JOIN 与排序 5) 锁竞争严重
四、处理 - 补充合适索引 - 重写 SQL 避免全表扫描 - 避免隐式转换 - 拆分复杂查询 - 减少锁竞争
五、优化 1) 读写分离 2) 缓存热点数据 3) 分库分表 4) 连接池调优
六、预防 - 慢查询监控告警 - 上线前 SQL 审核 - 定期索引优化
总结:慢查询要先用 EXPLAIN 与慢日志定位,再从索引、SQL 写法与架构逐项优化。