数据库的隔离级别

数据库的隔离级别

脏读(dirty read),即一个事务读取了另一事务尚未提交的数据,注(这在mysql中存在这个级别,在oracle中不存在)。

不可重复读(non-repeatable read),同一条数据在同一个事务中,读两次,但是两次读出来是数据结果不一样。这主要是涉及到对一个表的单个记录进行操作(更新)所引起的不一致的现象。
这两种情况分别为:
一,
1 比如事务一先读出此条数据,这时事务二对这条数据进行了更新操作并提交事务;
2 这时候事务一还没进行完,这时如果事务一再对此条数据进行读操作,那么所读出的数据和第一所读出的数据是不一致,这也就是典型的不可重复读。
二,上面的1步骤是相同的,这时2步骤中的事务一不是对此条数据进行再查询操作,而是对她进行更新或是回滚,这时事务一没有发现事务二所进行的操作,这种情况也被称为第二类不丢失更新。

幻读(phantom read),即涉及到的操作为整个表,如第一事务采取了对整个表的操作,如对整个表求记录个数,对整个表进行更新。这时候第二个事务添加或是删除了表中的一条数据。而第一个事务还没有执行完毕,这时也就出现了整个表中的个别数据操作的不一致现象。
 
隔离级别设置:
1.隔离级别 read uncommitted (1)
级别read uncommitted(又称读取未提交内容)允许任务读取数据库中未提交的数据更改。
2.隔离级别 Read Committed(2)
级别Read Committed(又称读取已提交内容)可防止脏读。

3,隔离级别 repeatable read(4)可以防止不可重复读

4.隔离级别Serializable(8)
级别Serializable(可串行化)可防止幻像和非重复读。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值