滚动查询定义和作用滚动查询日志顾名思义是查询较慢的日志,即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参考手册-数据库管理