MySQL kill
本文将介绍 MySQL 中的 kill 命令。
一、kill 命令
MySQL 中有两个 kill 命令,分别是:
kill query 线程ID
:终止线程中正在执行的语句kill [connection] 线程ID
:终止线程中正在执行的语句,断开线程的连接
二、kill 命令的作用
如果执行某个查询的过程过长或被堵塞,可以通过 kill query 命令放弃查询。
三、kill 命令的做法
kill 并不会立刻停止线程,而是先将线程的状态标记为 “停止”,然后让线程 “执行停止的逻辑”。
进程并不能直接停止,因为有停止的逻辑需要执行,例如:
- 事务中停止,需要回滚 undo log
- 大查询回滚,需要将查询过程中生成的临时文件删除
四、客户端 Ctrl + C
在客户端中执行 Ctrl + C,实际上是 MySQL 客户端另外启动一个连接,发送 kill query 命令。
这是因为 MySQL 是停等协议,当线程执行的语句还没有返回时,继续发命令无效,因此需要另起一个连接
参考
- MySQL 技术内幕
- MySQL 实战 45 讲
- MySQL 是怎样运行的:从根儿上理解 MySQL