豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: MySQL慢查询日志

🤖 Ai回答:
MySQL 慢查询日志详解

慢查询日志是MySQL提供的一个非常有用的功能,用于记录执行时间超过指定阈值的SQL语句,帮助开发者识别和优化性能瓶颈。

启用慢查询日志

临时启用(无需重启)

sql
开启慢查询日志
SET GLOBAL slow_query_log = 'ON';

设置慢查询阈值(单位:秒)
SET GLOBAL long_query_time = 1;

设置日志文件路径
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';

记录未使用索引的查询(即使执行时间较短)
SET GLOBAL log_queries_not_using_indexes = 'ON';

永久配置(需修改my.cnf/my.ini)

ini
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

查看慢查询日志

直接查看日志文件

查看日志内容
cat /var/log/mysql/mysql-slow.log

实时监控日志变化
tail -f /var/log/mysql/mysql-slow.log

使用mysqldumpslow工具分析

MySQL提供了`mysqldumpslow`工具帮助分析慢查询日志:

查看执行时间最长的10个查询
mysqldumpslow -s t -t 10 /var/log/mysql/mysql-slow.log

查看执行次数最多的查询
mysqldumpslow -s c -t 10 /var/log/mysql/mysql-slow.log

查看包含特定关键词的慢查询
mysqldumpslow -g SELECT /var/log/mysql/mysql-slow.log

使用pt-query-digest分析(Percona Toolkit)

pt-query-digest /var/log/mysql/mysql-slow.log

慢查询日志格式说明

典型的慢查询日志条目包含以下信息:

Time: 2023-10-15T14:23:12.123456Z
User@Host: root[root] @ localhost [] Id: 12
Query_time: 2.345678 Lock_time: 0.000123 Rows_sent: 10 Rows_examined: 10000
SET timestamp=1234567890;
SELECT * FROM large_table WHERE some_column = 'value';

Query_time: 查询执行总时间
Lock_time: 锁定时间
Rows_sent: 返回给客户端的行数
Rows_examined: 服务器检查的行数

最佳实践

1、合理设置阈值:生产环境通常设置为1-2秒,开发环境可以更低
2、定期轮转日志:防止日志文件过大
3、结合EXPLAIN分析:对发现的慢查询使用EXPLAIN查看执行计划
4、监控日志大小:确保不会耗尽磁盘空间
5、生产环境谨慎使用:长期开启可能对性能有轻微影响

注意事项

修改`long_query_time`后,需要重新建立连接才会生效
慢查询日志不会记录管理语句(如ALTER TABLE, CREATE INDEX等)
在高并发系统中,慢查询日志可能变得非常大,需要定期清理

Ai作答

📣 商家广告


广告招商

黄金域名

广东过滤器

域名抢注

广告招商


0

IP地址: 124.42.95.93

搜索次数: 18

提问时间: 2025-12-06 01:34:51

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 85551 85552 85553 下一篇