MYSQL慢日志探索
来源:互联网 发布:重装 mac 编辑:程序博客网 时间:2024/06/08 18:58
Table of Contents [hide]
- 1. 出现场景
- 2. 什么样的慢查询会记录到slow log日志
- 2.1 慢日志查询和锁定时间介绍
- 2.2 何时记录慢日志
- 2.2.1 设置开启MySQL慢日志相关参数
- 2.2.2 准备测试数据
- 2.2.3 测试场景介绍
- 2.2.3 测试结果展示
- 3. 结论
1. 出现场景
今天审计SQL慢查询,发现一个很简单的SQL语句出现在了满日志里面,并且相应时间还很长,拿出去直接去查看执行计划,并没有发现什么问题。突然感觉为什么会记录在慢日志中感觉很模糊。亲自动手找一下原因吧
问题语句:select userid from tbl_name where mobile =?
2. 什么样的慢查询会记录到slow log日志
2.1 慢日志查询和锁定时间介绍
在Slog慢日志中,会有类似这样的数据,体现了2个参数,查询时间和所等待时间
# Query_time: 27.620161 Lock_time: 25.615839 Rows_sent: 1 Rows_examined: 1
2.2 何时记录慢日志
记录到慢日志的SQL与Query_time,Lock_time,long_query_time有什么关系呢?为了解决这个问题,我特意做了一个下面的实验,废话不在多说,准备测试数据
2.2.1 设置开启MySQL慢日志相关参数
我的设置如下:
slow_query_log=1
long_query_time=1
slow_query_log_file=/home/db/Main.Slow.log
2.2.2 准备测试数据
[localhost](dog) 11:17:45>CREATE TABLE Gbk_Null (
id int(11) NOT NULL AUTO_INCREMENT,
name char(10) DEFAULT NULL,
PRIMARY KEY (id),
KEY name(name)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=gbk;
[localhost](dog) 12:17:02>select * from Gbk_Null;
+—-+——-+
| id | name |
+—-+——-+
| 1 | aaa |
| 2 | bbbb |
| 3 | cccc |
| 4 | ddd |
| 5 | eeee |
| 6 | fffff |
+—-+——-+
6 rows in set (0.00 sec)
2.2.3 测试场景介绍
场景1:
session A:
begin;
select * from Gbk_Null where id =1 for update;
Session B;
begin:
select *,sleep(2) from Gbk_Null where id =1 for update;
然后去场景中commit事务,观察是否有满日志记录到满日志文件中
场景2:
session A:
begin;
select * from Gbk_Null where id =1 for update;
Session B;
begin:
select * from Gbk_Null where id =1 for update;
然后去场景中commit事务,观察是否有满日志记录到满日志文件中
场景3:
session A:
begin;
select * from Gbk_Null where id =1 for update;
Session B;
begin:
select *,sleep(0.5) from Gbk_Null where id =1 for update;
2.2.3 测试结果展示
通过上面场景的测试,发现了场景1的Session B中SQL被记录到了满日志中,而场景2,场景3 没有任何的满日志记录信息,慢日志内容如下
# Time: 150227 11:12:52
# User@Host: root[root] @ localhost [127.0.0.1] Id: 9
# Query_time: 9.623483 Lock_time: 7.623200 Rows_sent: 1 Rows_examined: 1
use dog;
SET timestamp=1425006772;
select *,sleep(2) from Gbk_Null where id =1 for update;
3. 结论
1)Query_time – Lock_time > long_query_time <==> 记录
1)Query_time – Lock_time < long_query_time <==> 不记录
- MYSQL慢日志探索
- php慢日志和mysql慢日志
- mysql慢日志记录
- MYSQL - 慢查询日志
- mysql 慢查询日志
- Mysql 慢查询日志
- mysql 慢查询日志
- Mysql 慢查询日志
- MySQL 慢日志功能
- MySQL慢查询日志
- MySQL 慢日志监控
- mysql慢查询日志
- mysql 慢查询日志
- Mysql慢查询日志
- mysql开启慢日志
- mysql慢查询日志
- mysql慢日志设置
- Mysql慢查询日志
- spark standalone深入学习-核心概念\启动过程\服务down掉说明
- Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明
- 提升自我认知第一天
- windows 下 apache 部署 django python3.6
- 修复Steam游戏库路径关联
- MYSQL慢日志探索
- 一级指针简单应用
- CSS 权重
- Android如何实现RecyclerView的item的展开及显示并让item位于头部
- DevOps 学习(一)-DevOps 的相关概念
- 微信扫码支付模式二功能实现,回调,记录充值,整个完整流程,java开发
- android 获取系统顶部状态栏(Status Bar)与底部导航栏( 获取底部浮动菜单 Navigation Bar)的高度
- 【JavaScript 基础】07 内置对象
- DBA(oracle)常用的命令语句<dba权限>