MySQL 事务系列 2
Publish date: Oct 89, 8119
Last updated: Oct 219, 21029
Last updated: Oct 219, 21029
问
脏读、不可重复读 和 幻读 的含义是什么?分别会在什么隔离级别发生?
答
脏读
一个事务读取到其他事务未提交的数据,称为脏读(Dirty Read)
不可重复读
一个事务中执行两次查询,可能得到不一样的结果,称为不可重复读 (Nonrepeatable Read)
幻读
事务 T1 读取某个范围的记录后,T2 又在该范围内插入了新的记录,T1 基于读取的数据执行一些其他操作,却执行失败了。事务 T1 读取的数据状态不支持它的下一步业务,跟见鬼了一样,称为 幻读(Phantom Read)
发生场景
隔离级别 | 脏读 | 不可重复读 | 幻读 | 开锁读 |
---|---|---|---|---|
未提交读 | Y | Y | Y | N |
提交读 | N | Y | Y | N |
可重复读 | N | N | Y | N |
串行化 | N | N | N | Y |