事务解读

转载 2006年05月30日 13:56:00
事务的4个基本特性(ACID):
1. Atomic(原子性):事务中包含的操作被看作一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。
2. Consistency(一致性):只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态。
3. Isolation(隔离性):事务允许多个用户对同一个数据的并发访问,而不破坏数据的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。
4. Durability(持久性):事务结束后,事务处理的结果必须能够得到固化。

数据库操作过程中可能出现的3种不确定情况:
1. 脏读取(Dirty Reads):一个事务读取了另一个并行事务未提交的数据。
2. 不可重复读取(Non-repeatable Reads):一个事务再次读取之前的数据时,得到的数据不一致,被另一个已提交的事务修改。
3. 虚读(Phantom Reads):一个事务重新执行一个查询,返回的记录中包含了因为其他最近提交的事务而产生的新记录。

标准SQL规范中,为了避免上面3种情况的出现,定义了4个事务隔离等级:
1. Read Uncommitted:最低等级的事务隔离,仅仅保证了读取过程中不会读取到非法数据。上诉3种不确定情况均有可能发生。
2. Read Committed:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。
3. Repeatable Read:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。
4. Serializable:最高等级的事务隔离,上面3种不确定情况都将被规避。这个级别将模拟事务的串行执行。

相关文章推荐

spring事务代码解读(转)

  • 2011年09月28日 20:28
  • 35KB
  • 下载

spring 声明式事务原理解读

在Spring中,声明式事务是通过事务属性(transaction attribute)来定义的。事务属性描述了事务策略如何应用到方法上。事务属性包含5个方面: 传播行为隔离级别是否只读事务超时回...

解读MySQL事务的隔离级别和日志登记模式选择技巧

导读: MySQL的四种事务隔离级别:Read-uncommitted、Read-committed、Repeatable-read、Seriailizable,相信大家都清楚各自异同,不清楚的...

【mybatis】完全解读mybatis JDBC事务

前言         mybatis源码版本:3.2.7 一、mybatis的发动机SqlSessionManager

数据库事务的解读

今天晚上我们就来谈谈事务,事务是保证数据库四大特性的前提,有事务才能有效防止脏读、幻读、不可重复读 为了方便演示事务,我们需要创建一个account 账户表: CREATE TABLE accoun...

深入解读Spring Framework事务管理(第四弹:基于@Transactional注解的声明式事务管理)

基于注解的声明式事务,主要使用的是@Transactional注解,下面我们来具体看一下。 // 这个service我们要将他事务化 @Transactional public class Defa...

大规模SOA系统的分布式事务处理

  • 2017年11月16日 17:10
  • 5.97MB
  • 下载

SpringAOP整合Hibernate并使用事务

  • 2017年11月02日 21:20
  • 34.23MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:事务解读
举报原因:
原因补充:

(最多只允许输入30个字)