mysql5.7開啓慢查詢日誌(windows系統+linux系統)

MySql提供慢SQL日誌的功能,能夠記錄下響應時間超過一定閾值的SQL查詢,以便於我們定位糟糕的查詢語句。

首先,查詢當前mysql數據庫是否開啓了慢查詢日誌功能:

mysql -uroot -p

******

show VARIABLES like '%slow%';

slow_query_log的值是ON,代表當前數據庫已經開啓了慢查詢功能。slow_query_log_file表示慢日誌的路徑。

還可以查看超過多少秒算是慢查詢:

show VARIABLES like 'long_query_time';

默認是10秒,這裏已經被配置爲1秒了。

那麼慢查詢功能是如何配置的呢?

Linux系統下是編輯/etc/my.cnf

slow_query_log=ON
slow_query_log_file=/var/lib/mysql/remotejob-01-slow.log
long_query_time=1

然後,重啓mysql服務使之生效:

service mysqld restart

接下來就可以通過slow_query_log_file指定的日誌路徑查看慢查詢記錄了。

 

1. 查看mysql系統參數(windows系統)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

mysql> show variables like "%slow%";

+---------------------------+-------------------------------+

| Variable_name             | Value                         |

+---------------------------+-------------------------------+

| log_slow_admin_statements | OFF                           |

| log_slow_slave_statements | OFF                           |

| slow_launch_time          | 2                             |

| slow_query_log            | OFF                           |

| slow_query_log_file       | /mysql/data/nagiosdb-slow.log |

+---------------------------+-------------------------------+

5 rows in set (0.00 sec)

 

 

slow_query_log: off關閉狀態  on開啓狀態

slow_launch_time   默認超過2s爲慢查詢

slow_query_log_file  慢查詢日誌存放地點

 

 

這三個參數,在不同的mysql版本中,不太一樣,不過都可以通過 show variables like "%slow%" 查看出來

1

  

2. 運行如下命令即可運行慢查詢日誌

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

mysql> set global slow_query_log=ON;

Query OK, 0 rows affected (0.03 sec)

 

mysql> set global slow_launch_time=5;

Query OK, 0 rows affected (0.00 sec)

 

mysql> show variables like "%slow%";

+---------------------------+-------------------------------+

| Variable_name             | Value                         |

+---------------------------+-------------------------------+

| log_slow_admin_statements | OFF                           |

| log_slow_slave_statements | OFF                           |

| slow_launch_time          | 5                             |

| slow_query_log            | ON                            |

| slow_query_log_file       | /mysql/data/nagiosdb-slow.log |

+---------------------------+-------------------------------+

5 rows in set (0.00 sec)

 

 

mysql 5.1.6版本起,slow_query_log 和 slow_launch_time 支持寫文件或寫數據庫表兩種方式,並且日誌的開啓,輸出方式的修改,都可以在global級別動態修改。

只需簡單通過set global slow_query_log=ON;即可開啓慢查詢,而不需要重啓數據庫!<br>

3. 可以直接寫到配置文件中 my.cnf

1

  

1

2

3

4

slow_query_log_file=/mysql/log/nagiosdb-slow.log

slow_launch_time=5

 

可以完成配置!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章