概述
文章目录
- 一、慢查询日志相关参数
- 二、慢查询日志配置:
- 1、查看 slow_query_log 的值的状态
- 2、设置 slow_query_log 的值为 打开(ON)
- 3、永久设置慢查询日志状态为打开
- 四、慢查询统计工具:mysqldumpslow
一、慢查询日志相关参数
MySql 慢查询的相关参数解释:
参数 | 描述 |
---|---|
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_query_not_using_indexes | 未使用索引的查询也被记录到慢查询日志中(可选) |
log_output | 日志存储方式。 log_output=‘FILE’ 表示将日志存入文件,默认值是’FILE’。 log_output=‘TABLE’ 表示将日志存入数据库,这样日志信息就会被写入到 mysql.slow_log 表中。 MySql 数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output=‘FILE,TABLE’。 |
日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启动慢日志查询,又需要能够更高的系统性能,那么建议优先记录到文件
二、慢查询日志配置:
Tips:默认情况下 slow_query_log 的值为 OFF,表示慢查询日志是关闭的,可以通过设置 slow_query_log 的值来开启。
1、查看 slow_query_log 的值的状态
mysql> show variables like '%slow_query%';
+---------------------+-------------------------------------------------+
| Variable_name
| Value
|
+---------------------+-------------------------------------------------+
| slow_query_log
| OFF
|
| slow_query_log_file | /var/lib/mysql/iZbp1hcv8qx067p386viryZ-slow.log |
+---------------------+-------------------------------------------------+
2 rows in set (0.00 sec)
2、设置 slow_query_log 的值为 打开(ON)
mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.00 sec)
再次查看状态
mysql> show variables like '%slow_query%';
+---------------------+-------------------------------------------------+
| Variable_name
| Value
|
+---------------------+-------------------------------------------------+
| slow_query_log
| ON
|
| slow_query_log_file | /var/lib/mysql/iZbp1hcv8qx067p386viryZ-slow.log |
+---------------------+-------------------------------------------------+
2 rows in set (0.00 sec)
3、永久设置慢查询日志状态为打开
tips:使用 set global slow_query_log=1
开启的慢查询日志只对当前数据库生效,如果 MySQL 重启后则会失效。所以就必须修改配置文件 my.cnf。
修改配置文件路径: /etc/mysql/my.cnf ,直接在 [mysqld] 下面添加这几个参数即可。
[mysqld]
# 慢查询日志开关
slow_query_log=ON
long_query_time=4
slow_query_log_file=/var/log/slow_query_log.log
重启服务:
# service mysql restart
查看修改状态:
mysql> show variables like '%query%';
+------------------------------+-----------------------------+
| Variable_name
| Value
|
+------------------------------+-----------------------------+
| binlog_rows_query_log_events | OFF
|
| ft_query_expansion_limit
| 20
|
| have_query_cache
| YES
|
| long_query_time
| 4.000000
|
| query_alloc_block_size
| 8192
|
| query_cache_limit
| 1048576
|
| query_cache_min_res_unit
| 4096
|
| query_cache_size
| 16777216
|
| query_cache_type
| OFF
|
| query_cache_wlock_invalidate | OFF
|
| query_prealloc_size
| 8192
|
| slow_query_log
| ON
|
| slow_query_log_file
| /var/log/slow_query_log.log |
+------------------------------+-----------------------------+
四、慢查询统计工具:mysqldumpslow
参数说明 官方→
Option Name | Description |
---|---|
-a | 不要将所有数字抽象为 “N”,将字符串抽象为 “S” |
-n | 至少具有指定数字的抽象数字 |
–debug | 编写调试信息 |
-g | 只考虑与模式匹配的语句 |
–help | 显示帮助信息并退出 |
-h | 日志文件名中服务器的主机名 |
-i | 服务器实例的名称 |
-l | 不要从总时间中减去锁定时间 |
-r | 颠倒排序 Sequences |
-s | 如何排序输出 |
-t | 仅显示前 num 个查询 |
–verbose | Verbose mode |
常见用法:
语句 | 说明 |
---|---|
mysqldumpslow -s c -t 10 /var/run/mysqld/mysqld-slow.log | 取出使用最多的10条查询 |
mysqldumpslow -s t -t 3 /var/run/mysqld/mysqld-slow.log | 取出查询时间最慢的3条慢查询 |
mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log | 得到按照时间排序的前 10 条里面含有左连接的查询语句 |
mysqldumpslow -s r -t 10 -g ‘left join’ /var/run/mysqld/mysqld-slow.log | 按照扫描行数最多的 |
最后
以上就是魁梧自行车为你收集整理的MySQL - 配置慢日志输出的全部内容,希望文章能够帮你解决MySQL - 配置慢日志输出所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复