mysql的进阶学习--基础篇--事务的并发问题

事务在并发的时候将会出现什么问题:

脏读

一个事务读到另外一个事务还没有提交的数据

说明什么?
说明两个事务都没提交, 读到的数据必然是不准确的, 非持久化的数据.

解决办法:
可以让事务并发
但是其中慢了一点的事务读取数据前, 必须要保证另外的并发的事务提交了,不然就是处于停滞状态.
称之为, 读已提交.(此时发现, 脏读的问题解决了)

不可重复读

一个事务之中, 先后读取同一条记录, 但是两次读取的数据却是不一样的. 称之为不可重复读.

说明什么?
说明事务ABC并发时, 事务A读取的是事务B提交的数据, 但是A依然在运行, 并且A后续操作中, 还有一次读取数据的操作, 但是后面读取的这一次确是C提交的数据. 此时A就很不解, 怎么读到的数据不一致.

解决办法:
不让有处理同一份数据的事务同时处理该数据, 必须要等前一个事务处理了, 才能让下一个事务进行.

幻读

一个事务查询一条记录时, 没有对应的数据, 但是在插入时, 却插入不进去, 发现这个记录存在了.

说明什么?
说明, 当一个事务想要对一个表中插入数据时, 明明原本一开始判断出这个表是没有这行数据的, 但是却被另外一个事务提前插入了, 导致插入失败.

解决办法:
操作同一个表的事务不给并发.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值