取消执行的语句被记录 slowlog

1.版本

1)操作系统

#cat /proc/version
Linux version 4.14.76-1.el7.rx.x86_64 (root@8dfc8db5e7914181ad0cf0484d9be73a) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)) #1 SMP Thu Oct 18 09:52:06 +06 2018

2)mysql数据库版本

[root@127.0.0.1][(none)]> select version();
+-----------+
| version() |
+-----------+
| 8.0.19    |
+-----------+
1 row in set (0.00 sec)
 

2.问题描述

2.1 问题发现

    偶然发现一个很有意思的慢查日志,日志如下(日志中用户名,ip,表名做了处理):

# Time: 2021-03-10T23:34:50.091021+08:00
# User@Host: dba_xxxx[dba_xxxx] @  [xx.xxx.x.xx]  Id: 26233801
# Query_time: 2.839109  Lock_time: 0.000377 Rows_sent: 0  Rows_examined: 0
SET timestamp=1615390487;
SELECT id,create_time FROM t_xxxx order by id 
 LIMIT 0, 1000;

##这个表是一个业务表,肯定是不为空的,但是慢日志中Rows_sent 和 Rows_examined 都为0,这是怎么回事?咨询了当时执行这个sql的同事,他当时执行一会就取消了该sql。就是说mysql 慢日志中记录取消执行的sql

 

2.2 测试验证

1) 执行某个sql,然后中断执行
root@127.0.0.1][(none)]> use test_shao;
Database changed
[root@127.0.0.1][test_shao]> select count(*) from test_user;
^C^C -- query aborted
ERROR 1317 (70100): Query execution was interrupted
[root@127.0.0.1][test_shao]>

2) 查看慢日志
# Time: 2021-03-17T14:45:05.191215+08:00
# User@Host: root[root] @  [127.0.0.1]  Id:    49
# Query_time: 5.700274  Lock_time: 0.001084 Rows_sent: 0  Rows_examined: 0
SET timestamp=1615963499;
select count(*) from test_user;

##评论区中有朋友提出了其他可能性,测试了一下他说的是正确的(igxuyr_),在5.7中被中断的查询Rows_examined可能不为0(不论查询语句是否有where条件)。在MySQL8.0 中如果是带where条件的语句,那么Rows_examined也可能不为0,如果不带where条件则Rows_sent和Rows_examined都为0(目前猜测这可能跟8.0 的paralle read有关)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渔夫数据库笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值