首页 > 编程知识 正文

MySQL慢查询日志总结,sql慢查询日志

时间:2023-05-04 03:50:27 阅读:12371 作者:2299

滚动查询定义和作用滚动查询日志顾名思义是查询较慢的日志,即mysql记录执行的SQL语句超过long_query_time参数设置的时间阈值的所有日志。 此日志有助于优化SQL语句。 默认情况下,低速查询日志处于关闭状态。 要使用低速查询日志功能,首先打开低速查询日志功能。

打开滚动查询日志,并将以下参数添加到mysql配置文件的mysqld下

log-slow-queries=d :/MySQL/log/mysqld-slow-query.log long-query-time=5# log-long-format # log -

log-slow-queries

指定日志文件的保存位置。 此目录文件必须具有写入权限。 否,将给出默认文件host_name-slow.log

long_query_time

SQL执行时间阈值。 默认值为10秒。

请注意以下三点。

1、设置long_query_time阈值后,mysql数据库将记录执行时间超过此值的所有SQL语句,但如果执行时间正好等于long_query_time,则不记录。 这意味着在mysql源代码中,它被确定为long_query_time或更高,而不是long_query_time或更高。

2、从mysql 5.1开始,long_query_time开始以微秒记录SQL语句的执行时间,以前只以秒为单位记录。 这样可以更准确地记录SQL的运行时间以进行DBA分析。

3、我建议这个时间不要太小也不要太大。 5-10秒之间比较好。 当然也可以根据自己的情况决定。

log-queries-not-using-indexes

如果正在执行的SQL语句未使用索引,则mysql数据库会将此SQL语句记录在滚动查询日志文件中。

log-long-format

这里需要注意这个参数。 不要被网上关于mysql抛出查询的几篇文章所迷惑。 ——他们对该参数进行了说明:“如果设置了,也将记录所有未使用索引的查询。” 我看了觉得不可思议。 这是否与参数log-queries-not-using-indexes的功能相同? 所以百度的。

与该参数对应是另一个参数log-short-format

简单来说,log-long-format选项用于设置日志格式,并扩展记录事件。 扩展方式记录谁发出了查询、何时发出了查询的信息。 可以更好地了解客户端的操作情况。

准确地说,这是记录活动更新日志、二进制更新日志和滚动查询日志的大量信息。 例如,它记录所有查询的用户名和时间戳。 此选项表示当前默认的记录行为,因此不赞成选择。

log-short-format

记录活动更新日志、二进制更新日志和慢速查询日志中的少量信息。 例如,不会记录用户名和时间戳。

log-slow-admin-statements

在抛出查询日志中记录抛出管理语句,如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE。

在抛出查询日志分析中,可以使用抛出查询日志来查找和优化有问题的SQL语句。 随着mysql数据库服务器运行时间的增加,慢速查询日志文件中记录的SQL查询可能会增加。 在这种情况下,分析这篇文章并不容易。 mysql提供的mysqldumpslow命令可以很好地解决此问题。

使用方法如下。

在命令行中,进入mysql/热情的期望目录,然后输入mysqldumpslow ?help--help以查看此工具的参数

mysqldumpslow-sc-t 20 host-slow.log

mysqldumpslow-Sr-t 20 host-slow.log

在上述命令中,您可以看到最多访问的20个sql语句和最多返回的记录集的20个sql

mysqldumpslow-T10-ST-g ' left join ' host-slow.log

这是按时返回前10个sql语句,包括左连接。

mysqldumpslow-sc-T10/database/MySQL/slow-log

这将输出记录次数最多的10个SQL语句。 现在,如下所示。

-s order显示了如何排序。 order的值按记录次数、时间、查询时间和返回的记录数分别对c、t、l和r进行排序,ac、at、al和ar表示相应的逆序。

-t num,即返回前面的多少条数据;

-g pattern、pattern可以书写正规匹配模式,大小写不敏感;

使用mysqldumpslow命令可以非常清楚地获取所需的各种查询语句。 监视、分析和优化MySQL查询语句是MySQL优化的第一步,也是非常重要的一步。

相关命令

显示低速查询的记录数

mysqlshowglobalstatuslike ' % slow % '; 显示long_query_time值

mysql show variables like '%long%”; 确定是否打开慢速查询

mysqlshowvariableslike ' log _ slow _ queries '; 查看log_queries_not_using_indexes状态

mysqlshowvariableslike ' log _ queries _ not _ using _ indexes ';

相关文献

1、mysql打开滚动查询日志

2、MySQL详细信息---日志类型

3、mysql优化基础

4、MYSQL教程:状态文件和日志文件

5、常用的mysql slowquery日志分析工具

6、MySQL 5.1参考手册-数据库管理

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。