数据库的事务隔离级别

事务的隔离性就是指,多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务间要相互进行隔离。

事务的并发问题:

1.脏读,读取了其他事务未提交的数据

2.不可重复读,A事务,第一次读取数据后,B事务更新了数据(update),A事务再次读取数据不一致

3.幻读,A事务,第一次读取数据后,B事务新增或删除了数据(create、delete),A事务再次读取数据不一致

为了解决事务的并发问题,数据库提供了4种事务隔离级别。

1.读未提交(Read Uncommitted),可以读到未提交的内容,无法避免脏读、不可重复读、幻读

2.读提交(Read Committed),就是只能读到已经提交了的内容,使用的“快照读”,可避免脏读,无法避免不可重复读、幻读

3.可重复读(Repeated Read),使用的“快照读”,但是,和“读提交”不同的是,当事务启动时,就不允许进行“修改操作(Update)”了,可避免脏读、不可重复读,无法避免幻读

4.串行化(Serializable),事务“串行化顺序执行”,也就是一个一个排队执行,可避免脏读、不可重复读、幻读,但执行效率差,性能开销大。

MySQL默认为repeatable-read,Oracle、SQL Server默认为Read Committed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值