博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL开启慢查询日志实施
阅读量:6843 次
发布时间:2019-06-26

本文共 1137 字,大约阅读时间需要 3 分钟。

hot3.png

查看当前服务器是否开启慢查询:

1、快速办法,运行sql语句show VARIABLES like "%slow%" 
2、直接去my.conf中查看。
my.conf中的配置(放在[mysqld]下的下方加入)
[mysqld]
log-slow-queries = /usr/local/mysql/var/slowquery.log
long_query_time = 1  #单位是秒
log-queries-not-using-indexes
使用sql语句来修改:不能按照my.conf中的项来修改的。修改通过"show VARIABLES like "%slow%" "
语句列出来的变量,运行如下sql:
set global log_slow_queries = ON;
set global slow_query_log = ON;
set global long_query_time=0.1; #设置大于0.1s的sql语句记录下来
慢查询日志文件的信息格式:
# Time: 130905 14:15:59         时间是2013年9月5日 14:15:59
# User : root[root] @  [183.239.28.174]
# Query_time: 0.735883  Lock_time: 0.000078 Rows_sent: 262  Rows_examined: 262 这里表示执行用时多少秒0.735883秒,1秒等于1000毫秒
SET timestamp=1378361759;  这目前我还不知道干嘛用的
show tables from `test_db`; 这个就是关键信息,指明了当时执行的是这条语句

设置毫秒级别与mysql版本的关系
很多网上资料显示,5.21之前的版本,在my.conf中的long_query_time最小只能设置为1(也就是最小1秒)。我自己歪打误撞,发现我通过其他方式可以实现。

"long_query_time = 0.1"这种方式我没试,因为数据库服务器在跑。需要重启。所以没试。我是通过全局变量设置实现慢日志查询记录的。
可以通过全局变量设置方式实现毫秒级别记录:
set global long_query_time = 0.01
我服务器上mysql版本为:5.1.60-log
我试过这种方式有效。
怎么测试自己的查询是否会被记录下来呢?
运行语句
select sleep(0.13);
我故意设置0.13秒延迟,然后这条语句按照预期(因为之前设置超过0.1秒)会被记录到日志文件中去。

转载于:https://my.oschina.net/u/1427708/blog/710602

你可能感兴趣的文章
Debian6 下NFS 安装
查看>>
chmod命令
查看>>
编译安装LAMP
查看>>
南怀瑾谈睡眠养生:如何才能少睡不困?
查看>>
Linux下面搭建***服务器(pptp)
查看>>
Spring IOC笔记
查看>>
如何解决 homebrew 更新慢的问题
查看>>
磁盘配额满与用户权限的更改
查看>>
ORACLE 数据类型
查看>>
KeyMob移动广告聚合平台为开发者提供最全面的保障
查看>>
钱sir 高数:一元函数积分学
查看>>
修改Windows server 2008远程桌面连接数量
查看>>
Excel文件导入异常-输入流无法识别
查看>>
我的友情链接
查看>>
CentOS6.4下YUM安装MySQL和JDK和Tomcat
查看>>
LVS解析及NAT、DR模型配置详解
查看>>
上期ctp期货API android 客户端
查看>>
puppet实战(一):文件同步+更改文件属性
查看>>
最简单的git部署方案
查看>>
js获取url参数值
查看>>