深入mysql慢查询设置的详解
在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化SQL语句将那些运行时间比较长的SQL语句找出呢?MySQL给我们提供了一个很好的功能,那就是慢查询!所谓的慢查询就是通过设置来记录超过一定时间的SQL语句!那么如何应用慢查询呢?
slow_query_log
long_query_time=1
(1)进入MySql控制台,执行如下语句:
selectsleep(2);
mysql>selectsleep(2);
+----------+
|sleep(2)|
+----------+
| 0|
+----------+
1rowinset(2.12sec)
#Time:12112020:06:23
#User@Host:root[root]@localhost[127.0.0.1]
#Query_time:2.104120 Lock_time:0.000000Rows_sent:1 Rows_examined:0
SETtimestamp=1353413183;
selectsleep(2);
(1)slow_query_log这句是开启记录慢查询功能,slow_query_log=0关闭;slow_query_log=1开启(这个1可以不写)
(2)long_query_time=1这句是记录超过1秒的SQL执行语句
(3)那么这个日志文件存放在什么地方呢?
默认是放在mysql的data目录,并且文件名为host_name-slow.log即主机名-slow.log,比如在笔者的开发机上就是THINK-slow.log(因为偶用的Thinkpad,呵呵)
(4)如果日志文件不想放在data目录,我们可以通过如下配置指定存放的目录及日志文件名:
其中file_name就是你的存放日志的目录和文件名,在这里注意有的资料上可能是log-slow-queries=file_name,这个在mysql5.5版已经过时!
(1)进入MySql控制台,运行如下sql语句:
setgloballong_query_time=0.1
该句是设置记录慢查询超过时间100ms的SQL,记住要重启mysql才能生效!
(2)测试
进入mysql控制台,执行如下sql语句:
selectsleep(0.5);
查看慢查询日志文件,我们看到最后添加的新信息:
#Time:12112020:42:06
#User@Host:root[root]@localhost[127.0.0.1]
#Query_time:0.500028 Lock_time:0.000000Rows_sent:1 Rows_examined:0
SETtimestamp=1353415326;
selectsleep(0.5);
相关文章
- mysql查询结果保留小数点后两位小数详解数据库
- MySQL 可以用localhost 连接,但不能用IP连接的问题,局域网192.168.*.* 无法连接mysql详解数据库
- MySQL 查询反转:从新定义查询结果(mysql取反)
- MySQL优化的大幅提升(mysql大于优化)
- 快速精准掌握MySQL查询代码(mysql查询代码)
- MySQL查询中的排序规则详解(mysql查询排序规则)
- MySQL查询:深入解析死锁(mysql查询死锁)
- MySQL集群:快速、安全的下载体验(mysql集群下载)
- MySQL无法查询中文:怎么解决?(mysql无法查询中文)
- MySQL分区:使用Hash法优化查询效率(mysql分区hash)
- 如何优化MySQL数据库查询?(mysql数据库查询优化)
- MySQL 数据库中如何查询不为空的数据(mysql中不为null)
- MySQL数据库中read操作函数详解(mysql中read())
- 从CSV格式到MySQL的数据转换(csv to mysql)
- MySQL中C和M优化查询的关键技巧(mysql中 c 和 m)
- MySQL实现个性化搜索技巧大揭秘(mysql 个性化搜索)
- MySQL如何判断字段是否为空(mysql中判断是否空值)
- 掌握MySQL中分钟表示,轻松管理数据存储与查询(mysql中分钟表示)
- 详解mysqlnd的操作方法与使用技巧(mysql_nd怎么用)
- 如何查询 MySQL 中的不可见字符(mysql不可见字符查询)
- MySQL下载BIN包,安装更简单(mysql下载bin包)