慢查询日志的管理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 前言:慢查询日志是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日志并进行多维度分析。
相关文章
|
7月前
|
SQL 监控 关系型数据库
深入理解MySQL日志:通用查询、慢查询和错误日志详解
深入理解MySQL日志:通用查询、慢查询和错误日志详解
1558 0
|
1月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
38 3
|
1月前
|
监控 关系型数据库 数据库
怎样分析慢查询日志?
【10月更文挑战第29天】怎样分析慢查询日志?
35 2
|
6月前
|
SQL 关系型数据库 MySQL
|
2月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
28 3
|
6月前
Liunx怎么安装spdlog(这是用来管理日志部分)
Liunx怎么安装spdlog(这是用来管理日志部分)
114 7
|
5月前
|
存储 弹性计算 运维
可观测性体系问题之ECS管控对其所有日志的管理如何解决
可观测性体系问题之ECS管控对其所有日志的管理如何解决
45 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(3)-索引语法(创建索引、查看索引、删除索引、案例演示),SQL性能分析(SQL执行频率,慢查询日志)
MySQL数据库——索引(3)-索引语法(创建索引、查看索引、删除索引、案例演示),SQL性能分析(SQL执行频率,慢查询日志)
68 2
|
6月前
|
监控 网络协议 Linux
技术好文共享::Linux系统日志管理日志转储
技术好文共享::Linux系统日志管理日志转储
108 0
|
6月前
|
SQL 监控 关系型数据库
MySQL慢查询日志配置指南:发现性能瓶颈,提升数据库效率
MySQL慢查询日志配置指南:发现性能瓶颈,提升数据库效率
879 0