Mysql 隔离性:4个隔离级别的区别

2020-03-11  本文已影响0人  Will_板凳

MySQL的默认存储引擎

四种隔离级别

隔离级别/缺陷 脏读 不可重复读 幻读
READ UNCOMMITTED (未提交读)
READ COMMITTED (提交读)
REPEATABLE READ (可重复读)
SERIALIZABLE(可串行化)

死锁

START TRANSACTION;
UPDATE Student SET name = "张三" WHERE id = 1;
UPDATE Student SET name = "王五" WHERE id = 2;
COMMIT
START TRANSACTION;
UPDATE Student SET name = "李四" WHERE id = 2;
UPDATE Student SET name = "刘能" WHERE id = 1;
COMMIT

当执行事务1,2同时执行更新完数据之后,它们也都锁定了当前行数据;当执行第二条SQL时,发现各自的数据都已经被锁定,都在等待对方释放,又都持有对方的需要的锁,陷入死循环,造成死锁。

上一篇 下一篇

猜你喜欢

热点阅读