Mysql數據庫優化之開啓慢查詢日誌

Mysql版本:5.5.18mysql

下面將介紹兩種方式開啓mysql開啓慢查詢的方法
sql

1.    配置文件修改(重啓mysql後不會失效,缺點是修改完配置文件後須要重啓)
數據庫

打開mysql配置文件(安裝方式不一樣配置文件路徑不一樣) vim

#vim /etc/my.cnf     (將一下內容添加進入配置文件)
c#

[mysqld]
long_query_time = 1
slow_query_log = 1
slow-query-log-file = /home/mysql/log/slow.log

解釋:spa

long_query_time = 1 #指執行超過1S的SQL會被記錄下來
slow_query_log=1    #1表示開啓慢查詢,0表示關閉慢查詢
slow-query-log-file = /home/mysql/log/slow.log   #慢查詢日誌存儲的路徑

#log-queries-not-using-indexes   #無需添加,若是須要記錄下來沒有索引的查詢,請添加此項,不然會被刷屏的命令行

修改完成後,記得重啓數據庫日誌

重啓後查看是否打開mysql 慢查詢(ON表示開啓,OFF表示關閉)code

mysql> show variables like '%slow%';
+---------------------+-------------------------------------+
| Variable_name       | Value                               |
+---------------------+-------------------------------------+
| log_slow_queries    | ON                                  |
| slow_launch_time    | 2                                   |
| slow_query_log      | ON                                  |
| slow_query_log_file | /home/mysql/log/slow.log |
+---------------------+-------------------------------------+
4 rows in set (0.00 sec)

查詢無索引的語句是否被記錄 (OFF沒有開啓)
索引

mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
+-------------------------------+-------+
1 row in set (0.00 sec)

查看超過多長時間的sql會被記錄下來

mysql> show variables like '%long_query%';     #時間單位爲秒
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

2.   mysql命令行修改

查詢命令參照上面

mysql> set global long_query_time=1;
Query OK, 0 rows affected (0.00 sec)

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.02 sec)

mysql> set global slow_query_log_file = '/home/mysql/log/slow.log';
Query OK, 0 rows affected (0.00 sec)

mysql> set global log_queries_not_using_indexes=off;   #若是不須要不用開啓
Query OK, 0 rows affected (0.00 sec)

執行完命令以後,使用上面的語句進行查看,是否開啓,修改完成後不用重啓數據庫,可是重啓數據庫就會失效;

相關文章
相關標籤/搜索