引言

性能分析是数据库优化的第一步。本文介绍MySQL的性能分析工具。

一、慢查询日志

1
2
3
4
5
6
7
8
9
-- 开启慢查询日志
SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 2;

-- 查看配置
SHOW VARIABLES LIKE 'slow_query%';

-- 分析慢查询
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log

二、EXPLAIN分析

1
2
3
4
5
6
7
EXPLAIN SELECT * FROM users WHERE age > 25;

-- 重要字段
-- type: 访问类型(const > eq_ref > ref > range > index > ALL)
-- key: 使用的索引
-- rows: 扫描行数
-- Extra: 额外信息

三、Performance Schema

1
2
3
4
5
6
7
-- 开启性能监控
UPDATE performance_schema.setup_instruments
SET ENABLED = 'YES', TIMED = 'YES';

-- 查看最慢的SQL
SELECT * FROM performance_schema.events_statements_summary_by_digest
ORDER BY SUM_TIMER_WAIT DESC LIMIT 10;

四、Profile分析

1
2
3
4
5
6
7
8
9
-- 开启profiling
SET profiling = 1;

-- 执行SQL
SELECT * FROM users;

-- 查看profile
SHOW PROFILES;
SHOW PROFILE FOR QUERY 1;

总结

MySQL性能分析工具:

  1. 慢查询日志:找出慢SQL
  2. EXPLAIN:分析执行计划
  3. Performance Schema:详细监控
  4. Profile:查看SQL耗时

参考资料

  • 《高性能MySQL》