mysql配置調優-開啟慢查詢日志-slow_query_log


工作中,會遇到需要查看mysql的top 20 慢sql,逐個進行優化,加上必要的索引這種需求,這時就需要開啟數據庫的慢查詢日志的功能

1.查詢當前慢查詢日志的狀態

# 默認為關閉狀態

mysql
----------------------------
show variables like "%slow_query_log%";
----------------------------

# 實例演示:

mysql> show variables like "%slow_query_log%";
+---------------------+-------------------------------------------+
| Variable_name       | Value                                     |
+---------------------+-------------------------------------------+
| slow_query_log      | OFF                                       |
| slow_query_log_file | /usr/local/mysql/data/1055-mysql-slow.log |
+---------------------+-------------------------------------------+
2 rows in set (0.00 sec)

# 可以看到,慢查詢日志的狀態和默認的慢查詢日志的文件

[root@1055-mysql ~]# cd /usr/local/mysql/data/
[root@1055-mysql data]# ll
總用量 568888
-rw-r----- 1 mysql root       5888 11月  7 2016 1055-mysql.err
-rw-rw---- 1 mysql mysql 56 11月 7 2016 auto.cnf -rw-rw---- 1 mysql mysql 281018368 12月 4 11:15 ibdata1 -rw-rw---- 1 mysql mysql 50331648 12月 4 11:15 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 12月 12 2017 ib_logfile1 drwx------ 2 mysql mysql 4096 11月 7 2016 mysql -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000123 -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000124 -rw-rw---- 1 mysql mysql 78 12月 4 11:15 mysql-bin.index drwx------ 2 mysql mysql 4096 11月 7 2016 performance_schema

# 但實際在該位置並未生成慢查詢日志的文件

2.手動開啟慢查詢日志

# 登陸mysql進行設置

mysql
----------------------------
set global slow_query_log=on;
----------------------------

# 實例演示:

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

mysql> show variables like "%slow_query_log%";
+---------------------+-------------------------------------------+
| Variable_name       | Value                                     |
+---------------------+-------------------------------------------+
| slow_query_log      | ON                                        |
| slow_query_log_file | /usr/local/mysql/data/1055-mysql-slow.log |
+---------------------+-------------------------------------------+
2 rows in set (0.00 sec)

# 可以看到,慢查詢日志的狀態更改了

[root@1055-mysql data]# ll
總用量 568892
-rw-r----- 1 mysql root       5888 11月  7 2016 1055-mysql.err
-rw-rw---- 1 mysql mysql       175 1月  22 18:23 1055-mysql-slow.log
-rw-rw---- 1 mysql mysql 56 11月 7 2016 auto.cnf -rw-rw---- 1 mysql mysql 281018368 12月 4 11:15 ibdata1 -rw-rw---- 1 mysql mysql 50331648 12月 4 11:15 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 12月 12 2017 ib_logfile1 drwx------ 2 mysql mysql 4096 11月 7 2016 mysql -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000123 -rw-rw---- 1 mysql mysql 120 12月 4 11:15 mysql-bin.000124 -rw-rw---- 1 mysql mysql 78 12月 4 11:15 mysql-bin.index drwx------ 2 mysql mysql 4096 11月 7 2016 performance_schema

# 檢查文件發現自動生成了慢查詢日志的文件

3.修改mysql配置文件保證永久生效

# 由於慢查詢日志記錄的信息比較多,會影響mysql的性能,所以生產環境不建議長期開啟

vim /etc/my.cnf
-----------------------------------
slow_query_log=1
slow_query_log_file=/usr/local/mysql/data/slow-query.log
-----------------------------------

# 其他可用的配置參數

long_query_time=1           # 慢查詢日志的時間定義(秒),默認為10秒,多久就算慢查詢的日志
log_queries_not_using_indexes=1    # 將所有沒有使用帶索引的查詢語句全部寫到慢查詢日志中

# 修改完配置重啟即可生效

==== 完畢,呵呵呵呵 ==== 


免責聲明!

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



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