Transaction
Transaction事务类似一种集合,代表着一系列的数据库操作,其结果会使数据库变为一个整体,因此不可分割。
事务状态:活跃状态、部分提交状态、失败状态、中止状态、提交状态
事务的四大特性(ACID):
原子性(Atomicity):事务要么全部执行,要么全部失败;不会存在一个事务的部分内容完成的现象。
一致性(consistency):事务的起始和结束,数据应当是不变的。
隔离性(Isolation):一个事务的执行不受外界其他事务
持久性(Duration):一个事务提交之后,对数据库的改变是永久的。
ACID特性是由relational database来实现的,其中DBMS采用日志log来保证原子性、一致性、持久性。log记录了事务对数据库所做的更新,如果运行过程中产生错误可以根据log撤销已经做的更新,rollback到开始之前的状态。
DBMS使用锁lock机制来实现隔离性,在并发场景下,只有获得锁的事务才可以更新该数据,其他事务要等待到获得锁才可以更新。
四种事务相互影响:
脏读:事务A读到了事务B未提交的数据。
不可重复读:一个事务范围内,两次查询返回了不同的数据,原因是在两次查询的间隔,其他事务对数据进行了修改。
幻读:事务A正在向表中插入数据,而事务B对表中全部数据行进行了修改。这时事务A会发现还有未修改的数据。
丢失更新:
两个事务同时对一条数据做修改,导致B的修改覆盖了A。
事务的隔离级别:
读取未提交:最低级别隔离,会产生各种事务问题
读取已提交:事务提交后,结果才可以被其他事务看见,可以解决脏读问题。
可重复读:同一个事务中,对同一份数据的读取结果总是相同的,无论是否其他事务对其进行操作,可以避免不可重复读和丢失更新
可串行化:事务串行化,隔离级别最高,完全服从ACID,牺牲了系统的并发性,所有事务依次执行,解决了并发事务的问题。
Transaction相关推荐
- java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction. in /U
错误内容如下 java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction ...
- redis 在 php 中的应用(事务 [ Transaction ] 篇)
本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: Transaction(事务) WATCH UNWATCH ...
- Oracle Block浅析2:ITL(Interested Transaction List)
一.ITL(Interested Transaction List): ITL(Interested Transaction List)是Oracle数据块内部的一个组成部分,位于数据块头(block ...
- Fragment提交transaction导致state loss异常
下面自从Honeycomb发布后,下面栈跟踪信息和异常信息已经困扰了StackOverFlow很久了. java.lang.IllegalStateException: Can not perform ...
- sql server 2005 T-SQL BEGIN TRANSACTION (Transact-SQL)
标记一个显式本地事务的起始点.BEGIN TRANSACTION 使 @@TRANCOUNT 按 1 递增. Transact-SQL 语法约定 语法 BEGIN { TRAN | TRANSACTI ...
- mysql中transaction的实现
transaction在数据库编程中是一个重要的概念,这样做可以控制对数据库操作的事务提交. 但是要想在程序中实现事务,要求数据库本身支持事务. 现在的关系型数据库,我们日常使用的mysql,orac ...
- ACID+CAP+BASE+Transaction(事务)
ACID+CAP+BASE+Transaction(事务) 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity).一致性(Consis ...
- CRM User Status profile中Business Transaction字段的用途
有朋友问到User Status profile中Business Transaction字段的用途,如下图INPR, FINI所示. 实际上,这个字段作为一个桥梁,连接了User Status和Sy ...
- SAP QM 执行事务代码QS51维护使用决策的选择集,系统报错 – Transaction no longer valid for catalog ‘3’ -
SAP QM 执行事务代码QS51维护使用决策的选择集,系统报错 – Transaction no longer valid for catalog '3' - 执行事务代码QS51,试图为工厂NMD ...
- We cannot activate inspection type for article master in transaction code MM41?
We cannot activate inspection type for article master in transaction code MM41? Is it possible to pl ...
最新文章
- Docker 容器技术 — docker run
- MYSQL-使用mysqldump创建数据库快照
- 【Ubuntu】ubuntu更新设置
- Activity跳转的数据交换问题---Activity学习笔记(二)
- mysql数据库备份shell_mysql数据库备份shell脚本分享
- git 提交文件_git原理与实战
- 关键时刻卡成狗,测网速要成上网必备动作了?
- php 微信公众 验证失败,微信公众平台token验证失败
- 张孝祥JavaScript视频教程flash版
- WPS简历模板的图标怎么修改_新媒体运营-简历模板范文,【工作经历+项目经验+自我评价】怎么写?...
- php表格行数怎么设置,表格怎么排版
- 计算机信息与科学专业好吗,俄亥俄州立大学 计算机信息与科学这个专业怎么样...
- Keras,今天7岁啦
- 51nod3241 小明和他的同学们
- Soul App聚焦Z世代社交需求 凭借2021亮眼表现荣获多个奖项
- Shell脚本学习指南(七)——产生脚本
- app访问服务器共享文件夹,管理企业共享文件软件的选择
- 使用CNN神经网络进行图片识别分类
- python库怎么绘画_Python绘图Turtle库详解
- 投票法的原理和案例分析
热门文章
- android启用hdcp_如何在Android的Google键盘中启用单手模式
- java水彩画效果滤镜,教你巧用PS滤镜实现水彩画效果
- python正则表达式中的冒号_正则表达式,正则匹配冒号
- git基本命令、提交pr
- KEILC51的下载和安装与工程建立
- Mac如何添加打印机
- flash player所有版本下载地址
- IDCC2018|上海数据港股份有限公司副总裁、数据中心首席架构师王海峰:标杆管理驱动数据中心建设变革...
- 采购供应链管理系统:企业采购与供应链管理更简单、快捷
- 华为mate xs拍照怎么用?镜像智拍助你告别大饼脸