慢查询日志的管理

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 前言:慢查询日志是mysql的另一个调优的入口,通过定义效率慢的sql语句,然后mysql根据这个定义记录在相应的日志里面,所以就叫慢查询日志;  参数概况:检查参数的查看:SHOW VARIABLES LIKE 'slow_query_log';...

前言:慢查询日志是mysql的另一个调优的入口,通过定义效率慢的sql语句,然后mysql根据这个定义记录在相应的日志里面,所以就叫慢查询日志;

 

参数概况:

检查参数的查看:SHOW VARIABLES LIKE 'slow_query_log';

mysql> SHOW VARIABLES LIKE 'slow_query_log';

+----------------+-------+

| Variable_name  | Value |

+----------------+-------+

| slow_query_log | ON   |

+----------------+-------+

1 row in set (0.00 sec)

 

当参数值为ON为开启,参数值为OFF为关闭;

 

相关参数:

可以在/etc/my.cnf文件中修改或通过set命令来操作,详细的操作可以查看已发的文档『深入理解mysql参数』

1、慢查询日志的开关:SET GLOBAL slow_query_log=ON/OFF,通过设置ON/OFF来进行开关;

2、慢查询日志的位置:slow_query_log_file=/data/mysql,文件路径

3、指定多少秒未返回结果的语句属于慢查询:long_query_time=10,超过10s钟

4、记录所有没有使用到索引的查询语句:long-queries-not-using-indexes

5、记录那些由于查找了多于1000次而引发的慢查询:min_examined_row_limit=1000

6、记录那些慢的OPTIMIZE TABLE\ANALYZE TABLE\ALTER TABLE语句:log_slow_admin-statements

7、记录有slave所产生的慢查询:log-slow-slave-statements

 

参数查看:

mysql> SHOW VARIABLES LIKE 'slow_query_log';

+----------------+-------+

| Variable_name | Value |

+----------------+-------+

| slow_query_log | ON | /当前系统的慢查询打开状态/ +----------------+-------+ 1 row in set (0.01 sec)

 

mysql> SHOW VARIABLES LIKE 'slow_query_log_file';

+---------------------+----------------------------+

| Variable_name | Value |

+---------------------+----------------------------+

| slow_query_log_file | /data/mysql/mysql-slow.log | /慢查询日志的位置/

+---------------------+----------------------------+

1 row in set (0.00 sec)

 

 

mysql> SHOW VARIABLES LIKE 'long_query_time';

+-----------------+-----------+ |

Variable_name | Value |

+-----------------+-----------+ |

long_query_time | 10.000000 | /获取超过10S的SQL语句/

+-----------------+-----------+

1 row in set (0.00 sec)

 

例子:select sleep(15);

mysql> select sleep(14);

+-----------+

| sleep(14) |

+-----------+

| 0 |

+-----------+

1 row in set (14.00 sec)

 

mysql> quit

-bash-4.1# cat /data/mysql/slow-log

/usr/local/mysql/bin/mysqld, Version: 5.5.36-log (Source distribution). started with:

Tcp port: 3306 Unix socket: /tmp/mysql.sock

Time Id Command Argument

# Time: 140904 17:39:36

# User@Host: root[root] @ localhost []

# Query_time: 14.000705 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0

SET timestamp=1409823576;

select sleep(14); ---这就是抓取的慢查询日志

 

总结:在实际的生产系统中,慢查询日志一般是不启用的;

如果需要的话一般都开启一段时间跟踪系统中的缓慢语句;

生产系统中该日志也会不断的增长,可以通过操作系统命令进行删除;

当慢查询日志很大的情况下,可以通过工具进行分析,分析的工具有Mysqldumpslow、mysqlsla等

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN 某上市公司DBA

数据库技术群:367875324 (该群有诸多公司的IT负责人,加入请备注数据库管理 )

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
负载均衡
|
4月前
|
运维 监控 关系型数据库
百度搜索:蓝易云【MYSQL四种管理日志详细介绍】
这四种管理日志对于MySQL服务器的性能监控、故障排查以及主从复制等方面都非常重要。在使用这些日志时,应根据具体需求来选择开启和配置,并定期清理和维护日志文件,以免占用过多磁盘空间。
58 0
|
5月前
|
存储 Oracle 关系型数据库
postgresql数据库|wal日志的开启以及如何管理
postgresql数据库|wal日志的开启以及如何管理
362 0
|
7月前
|
关系型数据库 MySQL 索引
mysql之开启慢查询日志
mysql之开启慢查询日志
|
7月前
|
SQL 监控 关系型数据库
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
496 0
|
13天前
|
SQL 监控 关系型数据库
【MySQL学习】MySQL的慢查询日志和错误日志
【MySQL学习】MySQL的慢查询日志和错误日志
|
8月前
|
Web App开发 存储 监控
日志服务之告警接入与管理
本教程介绍如何使用日志服务接入NGINX模拟数据,并配置告警规则来对NGINX访问错误进行监控。
337 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL SQL性能分析 慢查询日志、explain使用
MySQL SQL性能分析 慢查询日志、explain使用
120 0
|
5月前
|
存储 文件存储
【云备份|| 日志 day5】文件热点管理模块
【云备份|| 日志 day5】文件热点管理模块
|
5月前
|
SQL 存储 关系型数据库
②⑩ 【MySQL Log】详解MySQL日志:错误日志、二进制日志、查询日志、慢查询日志
②⑩ 【MySQL Log】详解MySQL日志:错误日志、二进制日志、查询日志、慢查询日志
81 0