2026-08-22
先给结论:MySQL慢不应先靠加CPU或内存猜测。先找到“哪条SQL在什么时间、扫描了多少行、返回多少行、是否等待锁”,再用EXPLAIN、索引和资源指标确认瓶颈。优化后的标准也不是命令执行成功,而是相同业务条件下响应时间、扫描行数和资源消耗下降。
本文更新时间:2026年8月22日。生产环境启用或调整日志前,应评估磁盘空间、日志轮转和隐私风险,避免把敏感参数长期写入日志。
| 证据 | 能回答的问题 | 常见误区 |
|---|---|---|
| 慢查询日志 | 哪些SQL超过阈值、执行多久、扫描多少行 | 阈值过高导致漏报,或开启后从不分析 |
| EXPLAIN | 访问顺序、访问类型、候选索引和估算行数 | 看到用了索引就认为一定高效 |
| 锁与事务 | SQL是在计算还是在等待 | 把锁等待误判为CPU不足 |
| 系统资源 | CPU、内存、磁盘I/O是否与慢请求同一时间异常 | 只看某个瞬时百分比 |
索引可以减少读取,但会占用空间,并增加INSERT、UPDATE和DELETE的维护成本。组合索引应围绕实际查询模式设计;重复索引和长期不用的索引需要审慎评估。上线索引前,应检查表大小、锁影响、DDL方式和回滚路径。
分页越深,简单的OFFSET可能扫描并丢弃大量行;复杂排序、函数包裹字段、隐式类型转换和前置通配符也可能让索引难以发挥作用。应结合执行计划和真实数据验证,而不是只改SQL外观。
硬件选型可参考2核4G、4核8G与8核16G配置指南,但必须先用压测和指标证明瓶颈。需要测试环境时可查看煜钧云云服务器。
可以长期使用,但要设置合适阈值、日志轮转、访问权限和容量告警。短期把阈值调得很低时尤其要评估写盘量。
不一定。索引选择性差、扫描范围大、回表次数多或排序临时表都可能仍然很慢,应结合实际执行指标判断。