事务的并发处理

事务特性:

acid

automic :原子性

consistent:一致性

itegrity:隔离性

durability:持久性

1、一致性:将事务中所做的操作捆绑成一个原子单元,即对于事务所进行的数据修改等操作,要么全部执行,要么全部不执行。

2、原子性:事务在完成时,必须使所有的数据都保持一致状态,而且在相关数据中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构都应该是正确的。

3、隔离性:由并发事务所做的修改必须与任何其他事务所做的修改相隔离。事务查看数据时数据所处的状态,要么是被另一并发事务修改之前的状态,要么是被另一并发事务修改之后的状态,即事务不会查看由另一个并发事务正在修改的数据。这种隔离方式也叫可串行性。

4、持久性:事务完成之后,它对系统的影响是永久的,即使出现系统故障也是如此。

并发导致的问题:

1.脏读

读了其他事务未提交的数据,中间可能有事务回滚的情况,在读取数据的过程中,有其他事务回滚了该数据。

2.不可重复读

在同一个事务里,两次读取的数据不一致,在读取数据的过程中,有其他事务更新了该数据。

3.幻读:

在读取数据的过程中,有其他事务插了一条新的数据。

事务的隔离级别

mysql查看事务的隔离级别:select @@tx_isolation

详见:16 [个人补充知识点]在Spring中定义了5中不同的事务隔离级别

为了保证效率的高效采用read commited 但是这样不能保证不可重复读的问题,为此我们用悲观锁,乐观锁

依赖于数据库的

悲观锁:直接加锁,知道处理完成。

乐观锁:先执行,后检查是否对所操作的数据有改动。

事务的并发处理,布布扣,bubuko.com

时间: 2024-10-14 04:47:47

事务的并发处理的相关文章

事务的并发处理带来的问题

相对于事务的串行处理,并发处理大大增加数据库资源的利用率 但会带来以下几种情况 1脏读 一个事务正在对一条记录做修改,在这个事务未完成提交前:此时,另一个事务也会读取同一条记录,如果不加控制,第二个事务读取这些脏数据,并作进一步处理 2 不可重复读 一个事务的在读取某些数据后的某个时间,再次读取以前的数据 ,却发现读出的数据已发生了改变 3 幻读 一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其他查询条件的新数据. 这些问题,其实都是数据库读一致性问题,必须数据库提供

关于Oracle E-Business Suite并发处理机制(Current Processing)

2012年写过一篇关于Oracle E-Business Suite并发管理器的文章,回头看之前总结的内容还是比较单薄,很多点没说到,最近在看这块的内容,索性再写一篇稍微完整的文章来. Oracle E-Business Suite并发处理机制(Current Processing)的好处 区别于普通功能的处理机制,并发处理机制其实是一个异步处理机制,它把程序放到后台来运行,前台的操作还给用户,允许用户可以继续做其他业务. 技术上将,异步处理的好处是降低系统特定时间点的负载,提升系统资源的整体使

数据库原理之事务(一)

数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠. 一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性.一致性.隔离性和持久性)属性.这四种属性的含义分别是: Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻

Oracle DTL 数据事务语言

DTL 数据事务语言 事务的定义:就是指一组相关的SQL操作,我们所有的操作都是事务中的. 注意:在数据库中,执行业务的基本单位是[事务],不是以某一条SQL. 数据库在默认情况下,事务是都打开的,也就是说它一种处在事务当中的,一个事务的结束,代表着下一个事务的开启. 执行commit或者rollback指令时,会结束当前事务 作用:用来保证数据的平稳性和可预测性例如:银行转账业务[SQL1:A账号向B账号转账10000 update tbl_account set balance=balanc

SQL Server中锁与事务隔离级别

SQL Server中的锁分为两类: 共享锁 排它锁 锁的兼容性:事务间锁的相互影响称为锁的兼容性. 锁模式 是否可以持有排它锁 是否可以持有共享锁 已持有排它锁 否 否 已持有共享锁 否 是 SQL Server中可以锁定的资源包括:RID或键(行).页.对象(如表).数据库等等. 在试图修改数据(增删改)时,事务会请求数据资源的一个排它锁而不考虑事务的隔离级别.排它锁直到事务结束才会解除.对于单语句事务,语句执行完毕该事物就结束了:对于多语句事务,执行完COMMIT TRAN或者ROLLBA

初识MySQL——人生若如初相逢

CREATE TABLE `student`(`studentNo` INT (4) NOT NULL PRIMARY KEY COMMENT '学号',`loginPwd` VARCHAR(20) NOT NULL COMMENT '密码',`studentName` VARCHAR (50) NOT NULL COMMENT '姓名',`sex` CHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',`gradeId` INT (4) UNSIGNED COMM

2017.06.29数据挖掘基础概念第四章

第四章39.为什么在进行联机分析处理(OLAP)时,我们需要一个独立的数据仓库,而不是直接在日常操作的数据库上进行 1.提高两个系统的性能 2.操作数据库支持多事务的并发处理,需要并发控制和恢复机制,确保一致性和事务的鲁棒性 3.两者有着不同的数据的结构.内容和用法40.什么是数据仓库 数据仓库是一种数据库,它与单位的操作数据库分别维护,数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持,是一个面向主题的.集成的.时变得.非易失的数据集合,支持管理者

SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)

SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1.2 INSERT SELECT 语句 8.1.3 INSERT EXEC 语句 8.1.4 SELECT INTO 语句 8.1.5 BULK INSERT 语句 8.1.6 标识列属性和序列对象 8.1.6.1 标识列属性 8.1.6.2 序列对象 8.2 删除数据 8.2.1 DELETE 语

mysql01

CREATE TABLE `student`( `studentNo` INT (4) NOT NULL PRIMARY KEY COMMENT '学号', `loginPwd` VARCHAR(20) NOT NULL COMMENT '密码', `studentName` VARCHAR (50) NOT NULL COMMENT '姓名', `sex` CHAR(2) NOT NULL DEFAULT '男' COMMENT '性别', `gradeId` INT (4) UNSIGNED