1.什么是事务
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
2.事务的特性
事务是恢复和并发控制的基本单位。
事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
3.Spring中事务的传播行为
PROPAGATION_REQUIRED: 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS: 支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY:使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。
4.Spring中的事务隔离级别
ISOLATION_DEFAULT 默认隔离级别
ISOLATION_READ_UNCOMMITTED 最低隔离级别。允许读事务未提交的数据,会产生脏读、不可重复读和幻象读。
ISOLATION_READ_COMMITTED 保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。
ISOLATION_REPEATABLE_READ 这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免不可重复读。
ISOLATION_SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。
分享到:
相关推荐
事务基础知识
Mysql基础入门个人笔记,详细记载了Mysql的安装、使用等。事务的概念、表的三范式等等Mysql基础的知识。对入门的小伙伴有一定的帮助。。。
MySQL知识总结思维导图,压缩包内包含MySQL数据库基础、MySQL库的操作、MySQL表的操作(DDL)、MySQL数据类型、MySQL表的约束、MySQL基本查询(DML)、MySQL内置函数、MySQL复合查询、MySQL内外连接、MySQL索引特性...
财务会计与师事务所管理知识分析实习总结.pptx
MySQL的一些基础知识总结。包含mysql编程,mysql操作语言,mysql查询语言,mysql定义语言(数据类型),mysql控制语言(数据库用户管理)和mysql事务语言。
除此以外还介绍了一些分布式事务相关的技术,如幂等性、全局一致性ID、分布式对象等。... 6-1 分布式事务介绍 6-2 spring分布式事务实现_使用JTA 6-3 spring分布式事务实现_不使用JTA 6-4 实例1-DB-DB 6-5 实例1-DB-...
分布式事务实现的难点,解决思路,不同场景下方案的选择,通过图解的方式进行梳理、总结和比较。相信耐心看完这篇文章,谈到分布式事务,不再只是有“2PC”、“3PC”、“MQ的消息事 务”、“最终一致性”、“TCC”等...
最新2021会计师事务所工作总结4篇.doc
oracle经常用到的知识总结文档,对于学习oracle来说非常有用!包括常用命令,常用表,数据类型,表操作基础,约束,运算符,查询,程序块,事务处理,流程控制,游标,存储过程,日期函数,字符串函数等等....
2021年会计师事务所工作总结范文4篇.doc
总结了jdbc的入门知识、分页和事务方面的知识,精辟!
2021年会计事务所实习工作总结.doc
这是一个oracle有关知识点的总结:(oracle的各种函数、查询、事务处理)
思维导图:mysql数据库表操作,分组函数,集合操作,单行函数,多表连接及事务等
对Mysql(索引结构/事务/锁/MVCC/BufferPool/优化)总结,包括重要知识点与面试点,xmind源文件
最新会计师事务所有限公司工作总结.doc
第 七章 数 据 库 恢复 技 术《概论》从第七章起用四章的篇幅讨论 DBMS 中重要的事务处理技术、数据库完整性和安全性问题。事务处理技术主要包括数据库恢复技
知识体系包括分布式事务、分布式一致性协议、高性能、高可用、可扩展、CAP理论、分布式id等。知识体系总结的不是很全,可以自行添加。使用Xmind9以上版本可以打开