程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> linux下mysql開啟慢查詢

linux下mysql開啟慢查詢

編輯:MySQL綜合教程

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 = 2
log-slow-queries = /usr/local/mysql/var/localhost-slow.log
重啟mysql服務即可。

這裡注意一下:自己在 lnmp 環境下通過 /etc/init.d/mysql reload 命令重載mysql服務沒有成功開啟慢查詢,使用 /etc/init.d/mysql restart 命令成功開啟了慢查詢。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved