⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

MySQL 慢查询日志分析与优化

学会启用慢查询日志并分析低效SQL,提升数据库性能。 · 难度:入门 · +15XP

MySQL 慢查询日志

慢查询日志记录执行时间超过指定阈值的SQL语句,是定位性能瓶颈的利器。结合mysqldumpslow或pt-query-digest等工具,可以快速找到最耗时的查询。

启用配置

-- 永久生效(my.cnf)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
log_queries_not_using_indexes = 1

-- 动态设置 SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 2;

日志内容示例

# Time: 2023-06-15T10:30:00
# User@Host: root[root] @ localhost []
# Query_time: 5.234567  Lock_time: 0.000123
# Rows_sent: 1000  Rows_examined: 500000
SELECT * FROM orders WHERE YEAR(created_at) = 2022;

关键指标:Query_time(实际执行时间)、Rows_examined(扫描行数)、Rows_sent(返回行数)。理想情况是Rows_examined接近Rows_sent。

分析工具

mysqldumpslow:MySQL自带工具,可汇总日志。

mysqldumpslow -s t -t 10 /var/log/mysql/slow.log

优化策略

练习提示

在编辑器中启用慢查询日志,然后执行一个消耗较大的查询,最后使用SHOW STATUS查看慢查询计数。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 68 篇
0 完成
🔥 0