Home >Database >Mysql Tutorial >linux下mysql开启慢查询_MySQL

linux下mysql开启慢查询_MySQL

WBOY
WBOYOriginal
2016-06-01 13:12:151179browse

mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找出这些语句,分析原因,加以优化。

1、方法1:用命令开启慢查询

1)、查看默认慢查询的时间:

mysql> show variables like "%long%";+--------------------+-----------+| Variable_name      | Value     |+--------------------+-----------+| long_query_time    | 10.000000 || max_long_data_size | 1048576   |+--------------------+-----------+2 rows in set (0.24 sec)
2)、修改慢查询时间,建议设置为5秒以内,不要设置过大,不然就失去了慢查询的作用了。 
mysql> set global long_query_time=2;Query OK, 0 rows affected (0.25 sec)
这里设置慢查询时间为2秒。

3)、查看慢查询是否开启

mysql> show variables like "%slow%";+---------------------+-----------------------------------------+| Variable_name       | Value                                   |+---------------------+-----------------------------------------+| log_slow_queries    | OFF                                     || slow_launch_time    | 2                                       || slow_query_log      | OFF                                     || slow_query_log_file | /usr/local/mysql/var/li411-195-slow.log |+---------------------+-----------------------------------------+4 rows in set (0.23 sec)
我们可以看到慢查询未开启。

4)、开启慢查询

mysql> set slow_query_log='ON';ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL
报错了,这里需要注意一下的是设置时需要加上 global 关键字。
mysql> set global slow_query_log='ON';Query OK, 0 rows affected (1.11 sec)
再次查看是否开启:
mysql> show variables like "%slow%";+---------------------+-----------------------------------------+| Variable_name       | Value                                   |+---------------------+-----------------------------------------+| log_slow_queries    | ON                                      || slow_launch_time    | 2                                       || slow_query_log      | ON                                      || slow_query_log_file | /usr/local/mysql/var/li411-195-slow.log |+---------------------+-----------------------------------------+4 rows in set (4.04 sec)
我们可以看到mysql 慢查询已经生效了。

2、方法2:修改mysql配置文件my.cnf

在[mysqld]段中加入:
long_query_time = 2log-slow-queries = /usr/local/mysql/var/localhost-slow.log
重启mysql服务即可。

这里注意一下:自己在 lnmp 环境下通过 /etc/init.d/mysql reload 命令重载mysql服务没有成功开启慢查询,使用 /etc/init.d/mysql restart 命令成功开启了慢查询。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn