首页 技术 正文
技术 2022年11月19日
0 收藏 399 点赞 3,577 浏览 2075 个字

MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过long_query_time值的SQL语句(秒为单位)。

默认情况下MySql数据库没有开启慢查询日志,

mysql> show variables like '%slow_query_log%';
+---------------------+---------------------------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\LAPTOP-6UTRE719-slow.log |
+---------------------+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

  开启慢查询日志

mysql> set global slow_query_log = 1;
Query OK, 0 rows affected (0.01 sec)mysql> show variables like '%slow_query_log%';
+---------------------+---------------------------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------------------------+
| slow_query_log | ON |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\Data\LAPTOP-6UTRE719-slow.log |
+---------------------+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

 其中

1.slow_query_log_file 项的值是保存慢查询日志的位置,默认缺省文件名为 host_name-slow.log。

2.这个设置的值只是环境变量,重启服务后就失效了,如果想要永久配置,要在主配置文件中修改(my.cnf中的[mysqld]下)。

slow_query_log = 1
slow_query_log_file = xxx.xxx

 关于long_query_time阈值 查询和设置与上面语法一样

mysql> show variables like 'long_query_time%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)mysql> set global long_query_time=5;
Query OK, 0 rows affected (0.00 sec)

  当前会话看不到,重新开一个终端即可查看。(也是临时环境变量)

来一些耗时操作。。。select sleep(6);

可以在文件里查看耗时操作的具体内容

也可以这样子

mysql> show global status like '%Slow_queries%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries | 1 |
+---------------+-------+
1 row in set (0.27 sec)

  查看耗时sql的统计数量。

mysqldumpslow

–mysqldumpslow是-shell中用来方便查看慢查询日志的指令

得到返回记录集最多的10个sql

mysqldumpslow -s r -t 10 <慢查询日志路径>

得到访问次数最多的10个sql

mysqldumpslow -s c -t 10 <慢查询日志路径>

得到按时间顺序排序的前10条里面有 xxx 串的查询语句

mysqldumpslow -s t -t 10 -g “xxx” <慢查询日志路径>

具体指令 mysqldumpslow –help 查询帮助文档

以后再补..

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,086
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,561
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,410
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,183
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,820
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,903