mysql - 中断执行的机制
中断功能一般通过下面两个命令实现:
- kill query pid 杀查询,中断正在执行的语句,查询不是指 select 语句,而是指 sql 语句,update 语句也能杀
- kill connection pid 杀会话,断开数据库连接
jdbc 杀会话原理
我们经常用的,中断某个查询语句,本质上,就是发送 kill query 命令,终止正在执行的查询语句。
在jdbc上,如果想要实现这一功能,需要调用 statement 的 cancel() 函数。
杀查询的影响
一般情况下,中断是通过杀查询的方式实现,中断就是取消执行当前语句的意思,之前已经执行的语句,仍然生效。
特殊案例
START TRANSACTION;
INSERT INTO my_table (column1, column2) VALUES ('value1', 'value2');
UPDATE my_table SET column1 = 'new_value' WHERE column2 = 'value2';
COMMIT;
如果你的语句是这样的,语句中开启了事务,这时候去中断,事务会全部回滚。
其它
最近用到一些非主流的工具,中断是通过 kill connection 实现的,kill 之后另起一个会话。
这时候,事务上的所有没提交的内容,都会被回滚。
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!