oracle与mysql死锁处理方式的不同点

oracle与mysql在遇到死锁的时候都是自动检测并处理,但是处理还是有些不同,oracle在自动检测到死锁后,会kill一个会话导致的死锁,但是不会完全回退这个事务的所有 语句,mysql会回退所有的语句。
oracle;
session A:
SQL> update t1 set id=5 where id=1;

已更新 1 行。

SQL> update t2 set id=6 where id=1;
update t2 set id=6 where id=1
*
第 1 行出现错误:
ORA-00060: 等待资源时检测到死锁
sessionB:
SQL> update t2 set id=5 where id=1;

已更新 1 行。

SQL> update t1 set id=6 where id=1;–一直卡着

mysql中:
sessiona:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> update t2 set id=5 where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update t1 set id=6 where id=1;
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting t
action
mysql>

sessionb:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> update t1 set id=5 where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update t2 set id=6 where id=1;
Query OK, 1 row affected (6.92 sec)
Rows matched: 1 Changed: 1 Warnings: 0

看到oracle遇到了死锁还是需要手工上去解除的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值