数据库MVCC和幻读

幻读

数据库并发操作可能出现的问题。

幻读指得是一个事务的操作改变了另一个事务的查询结果。

幻读在只读的情况下不算问题,但在读-写情况下会造成数据冲突。

只读情况下

alt
对表中插入了一条id=3的数据 。

在这里插入图片描述
在另一个事务中并不会影响查询结果。在同一个事务下 两次select * 的查询结果是相同的。

读-写模式

在这里插入图片描述
在这里插入图片描述
一个事务插入了id = 3这条数据 另一个事务在查询这条数据时确没有找到,选择插入这条数据 结果报错了。

解决方案

1 串行化 这是最高的隔离级别,在这种情况下,事务按顺序依次执行不会产生问题。

2 加锁

在这里插入图片描述
在这里插入图片描述
事务处于等待状态 无法插入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值