MySQL清理慢查詢日志slow_log的方法


一、清除原因

因為之前打開了慢查詢,導致此表越來越大達到47G,導致磁盤快被占滿,使用xtrabackup進行備份的時候文件也超大。

mysql> show variables like 'log_output%';
Connection id:    1694401091
Current database: mysql

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | TABLE |
+---------------+-------+
1 row in set (0.00 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 | /home/mysql/data3311/sql01-slow.log |
+---------------------+-------------------------------------+
4 rows in set (0.00 sec)

現在備份之前的文件夾大小只有3.1G,備份后大小3.3G,使用mysqldump邏輯備份數據庫為234M。

二、清理show_log的方法

mysql> use mysql;
mysql> SET GLOBAL slow_query_log = 'OFF';
mysql> ALTER TABLE slow_log RENAME slow_log_drop;
mysql> CREATE TABLE slow_log LIKE slow_log_drop;
mysql> SET GLOBAL slow_query_log = 'ON';
mysql> DROP TABLE slow_log_drop;

三、相關參數

mysql> show variables like '%log_output%';       # 默認是FILE
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | TABLE |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%quer%';
Connection id:    1694418241
Current database: *** NONE ***

+-------------------------------+-------------------------------------+
| Variable_name                 | Value                               |
+-------------------------------+-------------------------------------+
| ft_query_expansion_limit      | 20                                  |
| have_query_cache              | YES                                 |
| log_queries_not_using_indexes | ON                                  |
| log_slow_queries              | ON                                  |
| long_query_time               | 2.000000                            |
| query_alloc_block_size        | 8192                                |
| query_cache_limit             | 2097152                             |
| query_cache_min_res_unit      | 4096                                |
| query_cache_size              | 67108864                            |
| query_cache_type              | OFF                                 |
| query_cache_wlock_invalidate  | OFF                                 |
| query_prealloc_size           | 8192                                |
| slow_query_log                | ON                                  |
| slow_query_log_file           | /home/mysql/data3311/sql01-slow.log |
+-------------------------------+-------------------------------------+
14 rows in set (0.00 sec)

-- log_output 默認是FILE,表示慢查詢日志輸入至日志文件,可以通過set修改輸出為TABLE

-- log_queries_not_using_indexes 默認是OFF,表示是否記錄沒有使用索引的查詢

-- slow_query_log 默認是OFF,表示是否打開慢查詢

-- long_query_time默認是 10.000000,表示記錄超過時間的慢查詢

SET global slow_query_log = ON;                  # 打開慢查詢記錄

SET GLOBAL long_query_time = 2.000000;           # 記錄超過2秒的慢查詢句語

SET GLOBAL log_queries_not_using_indexes = ON;   # 開啟 記錄沒有使用索引的語句

SET global log_output='TABLE'                    # 默認為FILE,改為TABLE


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM