事务隔离和事务级别

事务隔离级别

事务隔离级别包含如下几种:

  1. 未提交读:在 READ UNCOMMITTED 级别,事务中的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,这也被称为脏读(Dirty Read )
  2. 已提交读:大多数数据库系统默认的隔离级别都是 READ COMMITTED (但 MySQL 不是),一个
    事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的 。
  3. 可重复读:解决了脏读的问题。该级别保证了在同一事务中多次读取同样记录的结果是一致的。但无
    法解决幻读(Phantom Read)的问题,所谓幻读,指的是当某个事务在读取某个范围内
    的记录时,会产生幻行。 InnoDB 和 XtraDB 存储引擎通过多版本并发控制 MVCC 解决了
    幻读的问题。
  4. 序列化:SERIALIZABLE 是最高的隔离级别。它通过强制事务串行执行,避免了前面说的幻读的问
    题。 SERIALIZABLE 会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用
    的问题,实际中很少使用

Oracle

Oracle的默认事务隔离级别是读未提交;

MySQL

MySQL默认的事务隔离是可重复读;

Spring的声明式事务

Spring的声明式事务和Hibernate中的Open Session In View(在Spring JPA中介绍)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值