1. 程式人生 > 其它 >【Mysql知識】mysql慢日誌

【Mysql知識】mysql慢日誌

技術標籤:每日文章mysqljava後端經驗分享

1.慢查詢相關引數

slow_query_log    :是否開啟慢查詢日誌,1表示開啟,0表示關閉。
log-slow-queries  :舊版(5.6以下版本)MySQL資料庫慢查詢日誌儲存路徑。可以不設定該引數,系統則會預設給一個預設的檔案host_name-slow.log
slow-query-log-file:新版(5.6及以上版本)MySQL資料庫慢查詢日誌儲存路徑。可以不設定該引數,系統則會預設給一個預設的檔案host_name-slow.log
long_query_time :慢查詢閾值,當查詢時間多於設定的閾值時,記錄日誌。
log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日誌中(可選項)。
log_output:日誌儲存方式。log_output='FILE'表示將日誌存入檔案,預設值是'FILE'。log_output='TABLE'表示將日誌存入資料庫,這樣日誌資訊就會被寫入到mysql.slow_log表中。
MySQL資料庫支援同時兩種日誌儲存方式,配置的時候以逗號隔開即可,如:log_output='FILE,TABLE'。日誌記錄到系統的專用日誌表中,要比記錄到檔案耗費更多的系統資源,因此對於需要啟用慢查詢日誌,又需<br>要能夠獲得更高的系統性能,那麼建議優先記錄到檔案。

操作示例:

mysql> show variables like '%slow_query_log%';
+---------------------+-------------------------------------+
| Variable_name       | Value                               |
+---------------------+-------------------------------------+
| slow_query_log      | ON                                  |
| slow_query_log_file | /data/mysql/data/localhost-slow.log |
+---------------------+-------------------------------------+
2 rows in set (0.03 sec)

mysql> show variables like '%long_query_time%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.03 sec)

其中,long_query_time的單位是秒

2.修改慢查詢引數

方式一:

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

方式二:

修改my.cnf檔案,增加或修改引數 slow_query_log 和 slow_query_log_file 後,然後重啟 MySQL 伺服器,如下所示:

slow_query_log =1
slow_query_log_file=/data/mysql/data/localhost-slow.log

修改慢查詢的時間:

mysql> set global long_query_time=1;

注意:使用命令 set global long_query_time=1 修改後,需要重新連線或新開一個會話才能看到修改值。你用 show variables like 'long_query_time' 檢視是當前會話的變數值,你也可以不用重新連線會話,而是用 show global variables like 'long_query_time';

3.完成一次慢查詢與日誌排查

執行一條慢查詢SQL語句:

mysql> select sleep(2);

檢視是否生成慢查詢日誌

ls /usr/local/mysql/data/slow.log

檢視具體字串的慢日誌

tail -fn99 /data/mysql/data/localhost-slow.log |grep 'select sleep'

參考文件:

https://www.cnblogs.com/kerrycode/p/5593204.html

https://www.cnblogs.com/huangguowen/p/10234043.html

(完)