MySQL日志:slow query log
ySQL的慢查询日志可以用来找出执行时间过长的查询语句,并进行针对性的优化。
一、slow log相关参数
以下参数都是动态参数,可以在实例运行时修改。
slow_query_log=1 #是否启用慢查询日志,1为启用,0为禁用
slow_query_log_file=slow.log #指定慢查询日志文件的路径和名字,可使用绝对路径指定;默认值是'主机名_slow.log',位于datadir目录
long_query_time=2 #SQL语句运行时间阈值,执行时间大于参数值的语句才会被记录下来
min_examined_row_limit=100 #SQL语句检测的记录数少于设定值的语句不会被记录到慢查询日志,即使这个语句执行时间超过了long_query_time的阈值
log_queries_not_using_indexes=1 #将没有使用索引的语句记录到慢查询日志
log_throttle_queries_not_using_indexes=10 #设定每分钟记录到日志的未使用索引的语句数目,超过这个数目后只记录语句数量和花费的总时间
log-slow-admin-statements=1 #记录执行缓慢的管理SQL,如alter table,analyze table, check table, create index, drop index, optimize table, repair table等。
log_slow_slave_statements=0 #记录从库上执行的慢查询语句
log_timestamps=system #5.7版本新增时间戳所属时区参数,默认记录UTC时区的时间戳到慢查询日志,应修改为记录系统时区
log_output=FILE,TABLE #指定慢查询日志的输出方式,从5.5版本开始可以记录到日志文件(FILE,慢查询日志)和数据库表(TABLE,mysql.slow_log)中
二、使用MySQL slow log
1. 在线修改数据库相关参数:
-
mysql> set global slow_query_log=1;
-
mysql> set global slow_query_log_file='my57-slow.log';
-
mysql> set global long_query_time=2;
-
mysql> set global min_examined_row_limit=50;
-
mysql> set global log_queries_not_using_indexes=1;
-
mysql> set global log_throttle_queries_not_using_indexes=10;
-
mysql> set global log_slow_admin_statements=1;
-
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-08-21 SQL Server的等待事件
2008-08-21 恢复整个SQL server数据库还是只恢复错误文件组(转)
2008-08-21 数据库备份过程中经常遇到的九种情况(转)
2008-08-21 通过日志恢复MSSQL数据例子