事务的隔离和序列化的关系?

5)事务的隔离和序列化的关系?
看 完前一段实际案例,你又会说了,事务的隔离就是序列化呀。回答:事务的隔离不等同于序列化。最狠的隔离级别才是序列化,在这种隔离级别中,我的事务即使很 普通的select * from table,你的事务都无法同时再改变表了。你的任何修改表的企图都会被挡住(block),直到我完成我的事务(即使我的事务就一句select * from table),你的修改表的语句才能执行。这样就保证了我在查看表时不会被你的任何修改所影响,看到脏读,幻读等。最不狠的隔离级别甚至可以同时看到别人 的uncommited的数据。

更多请见:http://www.mark-to-win.com/tutorial/jsp_7_RelationIsolationAndSerialization.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SPRING 事务的属性主要包括传播行为、隔离级别、超时时间和只读属性等。 其中,事务隔离级别有四种,分别为: 1. 读未提交(READ_UNCOMMITTED):一个事务可以读取另一个未提交事务的数据变更,这种隔离级别会导致脏读、不可重复读和幻读问题。 2. 读已提交(READ_COMMITTED):一个事务只能读取另一个已提交事务的数据变更,可以避免脏读问题,但是不可重复读和幻读问题仍然存在。 3. 可重复读(REPEATABLE_READ):保证在同一个事务中多次读取同一数据时,结果是一致的。可重复读可以避免脏读和不可重复读问题,但是幻读问题仍然存在。 4. 序列化(SERIALIZABLE):最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,可以避免脏读、不可重复读、幻读问题。 在选择事务隔离级别时,需要根据具体场景进行选择。如果并发量较低,可以选择序列化隔离级别,如果并发量较高,但是数据更新不频繁,可以选择可重复读隔离级别,如果数据更新比较频繁,但是读取较少,可以选择读已提交隔离级别,如果数据更新非常频繁,并且读取也非常频繁,可以选择读未提交隔离级别。 需要注意的是,隔离级别越高,事务的并发性能就越低,因为隔离级别越高,需要加锁的情况就越多,从而影响并发性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值