数据库隔离级别的区别

1 READ UNCOMMITTED(会产生脏读)

读未提交:该隔离级别允许A事务在B事务修改某一行数据时读数据,因此B事务在修改数据后回滚时可能导致A事务读到被修改的数据。

2 READ COMMITTED(不会产生脏读,但会产生不可重复度)

读已提交:该隔离级别下,禁止在B事务修改某一行时A事务读数据,这样就可以避免脏读,但是不禁止A事务读某一行数据时B事务修改该行数据,导致A事务中两次读取该行数据时数据不同,即产生了不可重复读。

3 REPEATABLE READ(mysql默认隔离级别;不会产生脏读和不可重复读,但会产生幻读)

可重复读:该隔离级别下,禁止A事务在读某一行时B事务修改该行数据,这样可以避免不可重复读。
但是之前提到的都是对某一行数据进行加锁,如果A事务读取的是整个表的数据,整个表有五行数据,那么只能锁这五行数据,这个时候B事务依然可以进行insert 和delete操作导致A事务两次查询表数据结果不同,即产生了幻读。

4 SERIALIZABLE(不会产生幻读)

串行化:该隔离别下,强制事务进行排序,使之不会发生冲突,因此不会出现脏读、不可重复读和幻读问题,但执行效率低, 普遍采用REPEATABLE READ隔离模式。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值