MySQL slow log 慢日志

sql慢日志用于记录执行时间超过指定阈值的SQL,对于系统性能和故障排错非常有帮助

1.如何开启sql慢日志

--开启slow log (默认情况下,MySQL是不开启慢查询日志的。)
set @@global.slow_query_log=1;

--设置slow log文件名,默认放在数据目录下
set @@global.slow_query_log_file=slow_log;

--设置将慢日志同时记录到数据表和磁盘文件中
set @@global.log_output='TABLE,FILE';

需要 supper权限(超管权限)

在服务端配置

/etc/my.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/instance-1-slow.log
long_query_time = 2

配置后,重启 mysql 服务即可

在命令行配置

查询 SHOW VARIABLES LIKE 'long_query_time';
查询 SHOW VARIABLES LIKE 'slow_query_log';
设置 set global slow_query_log='ON';
设置 set global slow_query_log_file='/var/lib/mysql/instance-1-slow.log';
设置 set global long_query_time=2;

slow_query_log=0 | 1
0为关闭,1为开启
slow_query_log_file=file_name
指定慢日志文件名,默认名字为host_name-slow.log,如果不是绝对路径,那么默认存放在datadir目录下
log_output=table |file |none
table 表示慢日志信息存放在mysql.slow_log数据表里;
file 表示慢日志信息存放在磁盘文件上,由上述slow_query_log_file指定, 不指定为file,即使设置了slow_query_log_file也是无效的;
none 表示即使开启了慢日志功能,也不会记录任何慢SQL

2.什么SQL会记录到慢日志里

long_query_time
该参数定义一个SQL的执行时间阈值,单位为秒,默认是10,最小值为0,可以指定0.1表示100ms。

min_examined_row_limit
该参数定义一个SQL所读取的数据行数;

log_queries_not_using_indexes
该参数决定是否记录未使用索引的SQL;

log_slow_admin_statements
该参数决定是否记录管理类的命令,有 ALTER TABLE,ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE,REPAIR TABLE,默认是不记录这一类语句到慢日志。

log_throttle_queries_not_using_indexes
该参数决定每分钟记录未使用索引的SQL的数量上限,因为未使用索引的SQL可能会非常多,导致慢日志空间增长飞快。

log_slow_slave_statements
该参数在从库上设置,决定是否记录在复制过程中超过long_query_time的SQL,如果binlog格式是row,则即使开启了该参数,也不会记录相关SQL。

3.SQL被记录到慢日志里,需要满足以下条件

1. 管理类语句不会记录,除非开启了log_slow_admin_statements;

2. 执行时间需要超过long_query_time,或者对于未使用索引的SQL,需要开启log_queries_not_using_indexes,并且记录数量在log_throttle_queries_not_using_indexes之下;

3. SQL需要读取数据行数超过min_examined_row_limit;

4. 从库的复制语句默认不记录,除非binlog格式是statement且开启log_slow_slave_statements。

4.mysql.slow_log表结构

desc mysql.slow_log;

MySQL slow log 慢日志

华为云 云数据库RDS查看慢查询

控制台 => 云数据库RDS => 实例名称/ID => 云DBA => (某实例)详情 => DBA智能运维 => 慢SQL | 慢日志明细 => 导出 => 导出OBS桶 => 查看导出列表

MySQL slow log 慢日志

Original: https://www.cnblogs.com/linuxshare/p/16731805.html
Author: 爱折腾的大臭臭
Title: MySQL slow log 慢日志

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573842/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球