MySQL进阶45讲【30】为什么还有kill不掉的语句? 向右看齐 2024-05-07 22:27 93阅读 0赞 ## 1 前言 ## 在MySQL中有两个kill命令:一个是kill query+线程id,表示终止这个线程正在执行的语句;一个是kill connection +线程id,这里connection可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止正在执行的语句的。 大家在使用MySQL的时候,有没有遇到过这样的现象:使用了kill命令,却没能断开这个连接。再执行showprocesslist命令,看到这条语句的Command列显示的是Killed。 大家一定会奇怪,显示为Killed是什么意思,不是应该直接在showprocesslist的结果里看不到这个线程了吗? 这篇文章,我们就来讨论一下这个问题。 其实大多数情况下,kill query/connection命令是有效的。比如,执行一个查询的过程中,发现执行时间太久,要放弃继续查询,这时我们就可以用kill query命令,终止这条查询语句。 还有一种情况是,语句处于锁等待的时候,直接使用kill命令也是有效的。我们一起来看下这个例子: ![在这里插入图片描述][634132909a6b4ef7b84cfc8920f39663.png] 可以看到,session C执行kill query以后,session B几乎同时就提示了语句被中断。这,就是我们预期的结果。 ## 2 收到kill以后,线程做什么? ## 但是,这里要停下来想一下 [634132909a6b4ef7b84cfc8920f39663.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/07/9e4ad9ced0c94088b8794e15e66ade86.png
相关 MySQL进阶45讲【13】为什么表数据删掉一半,表文件大小不变? MySQL进阶45讲【13】为什么表数据删掉一半,表文件大小不变? 女爷i/ 2024年05月07日 22:32/ 0 赞/ 86 阅读
相关 MySQL进阶45讲【12】为什么你的MySQL偶尔会卡一下 MySQL进阶45讲【12】为什么你的MySQL偶尔会卡一下 淩亂°似流年/ 2024年05月07日 22:31/ 0 赞/ 91 阅读
相关 MySQL进阶45讲【10】MySQL为什么有时候会选错索引? MySQL进阶45讲【10】MySQL为什么有时候会选错索引? 绝地灬酷狼/ 2024年05月07日 22:31/ 0 赞/ 90 阅读
相关 MySQL进阶45讲【38】insert语句的锁为什么这么多? MySQL进阶45讲【38】insert语句的锁为什么这么多? 爱被打了一巴掌/ 2024年05月07日 22:28/ 0 赞/ 89 阅读
相关 MySQL进阶45讲【20】为什么只改一行的语句,锁这么多? MySQL进阶45讲【20】为什么只改一行的语句,锁这么多? 阳光穿透心脏的1/2处/ 2024年05月07日 22:26/ 0 赞/ 92 阅读
相关 mysql进阶(二)14-30讲 1.mysql索引: 索引是帮助mysql高效获取数据的数据结构;(排好序的快速查找数据结构) ![70][]![70 1][] 如果索引字段是char类型,那么在 àì夳堔傛蜴生んèń/ 2022年05月19日 14:21/ 0 赞/ 161 阅读
还没有评论,来说两句吧...