如何使用MySQL性能评估工具分析查询效率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计905个文字,预计阅读时间需要4分钟。
MySQL 的 `EXPLAIN` 是最直接的查询入口,但它仅做预估,不反映真实执行情况。若要查看效率,可使用 `profiling` 或 `SHOW PROFILES`。不过,这个功能在 MySQL 8.0.22 已被标记为废弃,生产环境更推荐使用 `performance_schema` 或 `slow_query_log` 配合 `long_query_time=0` 来捕获所有查询。
实操建议:
- 临时开启 profiling(仅用于调试):
SET profiling = 1;,执行完查SHOW PROFILES;和SHOW PROFILE FOR QUERY N; - 长期监控务必启用
performance_schema,尤其关注events_statements_history_long表,它记录最近的语句耗时、锁等待、磁盘 I/O 等真实指标 - 如果允许修改配置,把
slow_query_log = ON和long_query_time = 0配上,再用mysqldumpslow或 pt-query-digest 分析日志
EXPLAIN 输出里哪些字段真正影响性能判断
EXPLAIN 的核心不是看“是否用了索引”,而是看“用了什么索引”和“扫了多少行”。
本文共计905个文字,预计阅读时间需要4分钟。
MySQL 的 `EXPLAIN` 是最直接的查询入口,但它仅做预估,不反映真实执行情况。若要查看效率,可使用 `profiling` 或 `SHOW PROFILES`。不过,这个功能在 MySQL 8.0.22 已被标记为废弃,生产环境更推荐使用 `performance_schema` 或 `slow_query_log` 配合 `long_query_time=0` 来捕获所有查询。
实操建议:
- 临时开启 profiling(仅用于调试):
SET profiling = 1;,执行完查SHOW PROFILES;和SHOW PROFILE FOR QUERY N; - 长期监控务必启用
performance_schema,尤其关注events_statements_history_long表,它记录最近的语句耗时、锁等待、磁盘 I/O 等真实指标 - 如果允许修改配置,把
slow_query_log = ON和long_query_time = 0配上,再用mysqldumpslow或 pt-query-digest 分析日志
EXPLAIN 输出里哪些字段真正影响性能判断
EXPLAIN 的核心不是看“是否用了索引”,而是看“用了什么索引”和“扫了多少行”。

