MySQL -- KILL + 客户端

本文详细解析了MySQL中KILL命令的作用,包括如何终止线程中的语句执行,以及KILL在不同场景下的效果。讨论了并发线程数、锁等待和KILL QUERY与KILL CONNECTION的区别,特别指出在某些情况下KILL命令可能无效的原因,如线程未到达检查状态、系统资源限制等。同时提到了CTRL+C、mysql -A和mysql –quick选项对客户端的影响,强调了正确理解和使用这些工具的重要性。
摘要由CSDN通过智能技术生成

KILL

  1. KILL QUERY THREAD_ID 终止这个线程中正在执行的语句
  2. KILL [ CONNECTION ] THREAD_ID 断开这个线程的连接,如果该线程有语句在执行,先停止正在执行的语句

锁等待

表初始化

CREATE TABLE `t` (
  `id` INT(11) NOT NULL,
  `c` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

INSERT INTO t VALUES (1,1);

操作次序

session A session B session C
BEGIN;
UPDATE t SET c=c+1 WHERE id=1;
UPDATE t SET c=c+2 WHERE id=1;(Blocked)
SHOW PROCESSLIST;
KILL QUERY 24;
ERROR 1317 (70100): Query execution was interrupted
mysql> SHOW PROCESSLIST;
+----+-----------------+-----------+------+---------+--------+------------------------+-------------------------------+
| Id | User            | Host      | db   | Command | Time   | State                  | Info                          |
+----+-----------------+-----------+------+---------+--------+------------------------+-------------------------------+
|  4 | event_scheduler | localhost | NULL | Daemon  | 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值