这是一个强大的工具,可以帮助您分析和优化 MySQL 数据库的性能。通过分析慢查询日志,您可以:
# 开启慢查询日志 SET GLOBAL slow_query_log = 'ON'; # 设置慢查询日志文件位置 SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log'; # 设置慢查询阈值(单位:秒) SET GLOBAL long_query_time = 1; # 记录未使用索引的查询 SET GLOBAL log_queries_not_using_indexes = 'ON';
在 my.cnf 配置文件中添加:
[mysqld] # 开启慢查询日志 slow_query_log = 1 # 设置慢查询日志文件位置 slow_query_log_file = /var/log/mysql/slow.log # 设置慢查询阈值(单位:秒) long_query_time = 1 # 记录未使用索引的查询 log_queries_not_using_indexes = 1 # 每分钟允许记录到慢查询日志的未使用索引的查询次数 log_throttle_queries_not_using_indexes = 60
# Time: 2024-03-16T16:04:53.000000Z # User@Host: root[root] @ localhost [] # Query_time: 4.809013 Lock_time: 0.000012 Rows_sent: 41325 Rows_examined: 169750 # Schema: db_name SET timestamp=1710605093; SELECT * FROM information_schema.tables;
# 分析慢查询日志
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log
参数说明:
-s:排序方式
t - 按查询时间排序
c - 按执行次数排序
l - 按锁定时间排序
r - 按返回记录数排序
-t:返回前几条记录
-g:使用正则表达式匹配
# 查看最新的慢查询 tail -f /var/log/mysql/slow.log # 统计慢查询数量 cat /var/log/mysql/slow.log | grep "# Time:" | wc -l
# 使用 EXPLAIN 分析 SQL 执行计划 EXPLAIN SELECT * FROM table_name WHERE condition;
重点关注以下字段:
确保您有 MySQL 慢查询日志文件(.log 格式)。您可以通过以下方式获取:
将日志文件拖拽到上传区域,或点击选择文件按钮上传。
上传完成后,系统会自动分析日志文件并显示:
您可以将分析结果导出为 Excel 或 CSV 格式,方便后续处理。
{{ scope.row.query_string }}
执行时间:{{ formatDate(currentSqlDetail.date) }}
数据库:{{ currentSqlDetail.db_name }}
用户:{{ currentSqlDetail.user_host }}
{{ currentSqlDetail.query_string }}