mysql 慢查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 慢查询相关的知识,希望对你有一定的参考价值。
我想使用慢查询来记录每天查询的信息 但是不知道为什么不能使用!!set global slow_query_log='ON' 这个也开启了 我的系统是linux 不知道怎么回事 有人明白吗?为什么没记录写入
-rwxr-xr-x 1 root root 0 Jun 3 14:53 mysql_slow_query.log
这个是写入的文件。一直是0.
而不是所有查询都会记入日志。 参考技术A 你检查如下参数:
mysql> show variables like '%slow%';
+---------------------+-----------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------+
| log_slow_queries | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /var/lib/mysql/localhost-slow.log |
+---------------------+-----------------------------------+
4 rows in set (0.00 sec)
其中,各参数说明如下:
slow_launch_time:慢查询超过的执行时间值。
slow_query_log:打开慢查询日志功能的标志。
slow_query_log_file:慢查询日志的目录。
mysql怎么开启慢查询日志开启
参考技术A 在my.ini中加上下面两句话log-slow-queries = D:\wamp\mysql_slow_query.log
long_query_time=5
第一句使用来定义慢查询日志的路径(因为是windows,所以不牵涉权限问题)
第二句使用来定义查过多少秒的查询算是慢查询,我这里定义的是5秒
第二步:查看关于慢查询的状态
执行如下SQL语句来查看mysql慢查询的状态
show variables like '%slow%';
执行结果会把是否开启慢查询、慢查询的秒数、慢查询日志等信息打印在屏幕上。
第三步:执行一次慢查询操作
其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:
SELECT SLEEP(10);
第四步:查看慢查询的数量
通过如下sql语句,来查看一共执行过几次慢查询:
show global status like '%slow%';本回答被提问者采纳 参考技术B pt-query-digest
子曰:“工欲善其事,必先利其器”善于利用好的性能分析工具可以使运维效率事半功倍。pt-query-digest 属于 Percona Toolkit 工具集中较为常用的工具,用于分析 slow log,可以分析 MySQL 数据库的 binary log 、 general log 日志,同时也可以使用 show processlist 或从 tcpdump 抓取的 MySQL 协议数据来进行分析。
以上是关于mysql 慢查询的主要内容,如果未能解决你的问题,请参考以下文章