澳门金沙vipMySQL开启慢查询日志log-slow-queries的方法

贰个不足为道WEB站点的页面平时供给查询N条SQL语句后技艺搜查缴获页面结果,当网址访谈速度慢而前边叁个做了汪洋优化办事之后,数据库瓶颈的查找也是WEB优化的二个要害片段。MySQL中提供了一个慢查询的日记记录效用,能够把询问SQL语句时间超越多少秒的言语写入慢查询日志,平时珍重中能够透过慢查询日志的笔录音信快速正确地看清难题所在。

在web开采中,大家平时会写出生机勃勃部分SQL语句,一条不好的SQL语句或者让您的整套程序都特别慢,超越10秒日常客商就能筛选关闭网页,怎么样优化SQL语句将那几个运行时刻
相比较长的SQL语句寻找呢?MySQL给大家提供了一个很好的机能,那便是慢查询!所谓的慢查询就是通过安装来记录当先一依时期的SQL语句!那么哪些接受慢查询呢?

开启慢查询功能

1.拉开MySQL的慢查询日志功效 暗许情形下,MySQL是不会记录超越一定实施时间的SQL语句的。要翻开那么些功用,大家必要改过MySQL的配置文件,windows下改良my.ini,Linux下修正my.cnf文件,在[mysqld]说起底扩张如下命令:

log-slow-queries 慢查询日志文件路线long_query_time
超越来越多少秒的查询就写入日志

复制代码 代码如下:

张开my.cnf配置文件,参加以下代码:

slow_query_log
long_query_time = 1

log-slow-queries = /tmp/mysql-slow.loglong_query_time = 2

2.测验慢查询日志作用
(1卡塔尔步向MySql调节台,试行如下语句:

如果是windows则在my.ini中加入

复制代码 代码如下:

my.ini

select sleep(2);

复制代码
代码如下:log_slow_querieslong_query_time = 2

mysql> select sleep(2);
+———-+
| sleep(2) |
+———-+
|        0 |
+———-+
1 row in set (2.12 sec)
(2卡塔尔查看慢查询日志文件think-slow.log,在文件最后开掘:

保留退出,重启MySQL就可以。关于long_query_time设置兴味索然我们设置long_query_time的值为2,表示查询SQL语句超过两秒的就记下,平常2秒就够了,暗中同意是10秒。但是,对于超级多WEB程序来讲,2秒的询问还是太长了。的确在重重站点中,多少个SQL语句当先1秒的举行时间都算慢的了。mysql5.1.21过后才提供更加细粒度的long_query_time设定,在此之前的本子只可以以秒做单位。

复制代码 代码如下:

翻看日志

# Time: 121120 20:06:23
#
[email protected]:
root[root] @ localhost [127.0.0.1]
# Query_time: 2.104120  Lock_time: 0.000000 Rows_sent: 1 
Rows_examined: 0
SET timestamp=1353413183;
select sleep(2);

复制代码 代码如下:[root@lizhong tmp]#
tail -f /tmp/mysql_slow.logTime: 120815 23:22:11User@Host: root[root]
@ localhost []Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1
Rows_examined: 6261774SET timestamp=1294388531;select count(*澳门金沙vip,) from
blog;

3.解释:
(1)slow_query_log
那句是展开记录慢查询成效,slow_query_log=0关闭;slow_query_log=1开启(这几个1方可不写)

率先行:推行时间第二行:实施顾客第三行:

(2)long_query_time = 1 那句是记录抢先1秒的SQL实行语句