MySQL数据库事务及其特性
一、事务概念
事务就是一个程序执行单元,里面的操作要么都做,要么都不做。
二、事务特性
事务有四个非常重要的特性(ACID):
原子性(Atomicity):事务是不可分割的整体,所有操作要么全做,要么全不做;只要事务中有一个操作出错,回滚到事务开始前状态,即之前已执行的操作无效。
一致性(Consistency):事务执行前后,从一个一致性状态到另一个一致性状态;比如A向B转账(A、B总金额就是一个一致性状态),不可能出现A扣了钱。B却没收到。
隔离性(Isolation):多个并发事务之间相互隔离, 不能相互干扰。
持久性(Durablity):事务完成后,对数据库的更改是永久保存的,不能回滚。
三、事务并发问题
1、脏读:一个事务读取了另一个事务未提交的数据。
2、不可重复读:一个事务多次读取同一数据,得到了不同的值。(被另一个事务更新了--update)
3、幻读:也是多次读取得到的结果不一致。(被另一个事务增加或删除了记录--insert/delete)
四、事务隔离级别(MySQL)
1、读未提交(read-uncommitted)
2、读已提交(read-committed):解决脏读
3、可重复读(Repeatable read):解决脏读、不可重复读
4、串行化(Serializable):解决脏读、不可重复读、幻读
MySQL默认的隔离级别是read-committed,级别越高,性能就越低。
MySQL数据库事务及其特性的更多相关文章
- mysql进阶(二十三)数据库事务四大特性
数据库事务四大特性 原子性.一致性.分离性.持久性 原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行.这种特性称为 ...
- mysql数据库事务详细剖析
在写之前交代一下背景吧! 做开发也好久了,没怎么整理过知识,现在剖析一下自己对数据库事务的认识,以前用sqlserver,现在转java后又用mysql.oracle.我这块就主要解释一下mysql数 ...
- Mysql数据库的四大特性
Mysql数据库事务的四大特性(ACID) 事务:把一组密不可分的操作系列集合在一起,这些操作要么全部执行,要么全部不执行. 1.原子性:事务是内定义的操作是一个整体,是不可分割的. 2.一致性:事务 ...
- PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的
PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报 分类: MYSQL数据库(5) PostgreSQL 是一个自由的对象-关系数据库服务器(数据库 ...
- MySQL数据库事务剖析
MySQL数据库事务剖析 事务就是一组原子性的SQL查询,是一个独立的执行单元.事务内的语句,要么全部执行成功,要么全部执行失败. 1.事务的标准特征 一个运行良好的事务处理系统,必须具备原子性.一致 ...
- 数据库 事务的特性ACID
数据库 事务的特性ACID 事务(Transaction)是并发控制的基本单位. 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐 ...
- Mysql数据库事务隔离级别
事务(transaction)是数据库管理系统的执行单位,可以是一个数据库操作(如Select操作)或者是一组操作序列.事务ACID属性,即原子性(Atomicity).一致性(Consistency ...
- MySql数据库事务正常提交,回滚失败
问题:在初次练习Mysql数据库事务时,事务正常提交,但是在遇到异常应当回滚时,回滚失败. 代码如下: //2.更新操作. public void update(Connection conn, St ...
- Mysql数据库事务的隔离级别和锁的实现原理分析
Mysql数据库事务的隔离级别和锁的实现原理分析 找到大神了:http://blog.csdn.net/tangkund3218/article/details/51753243 InnoDB使用MV ...
随机推荐
- C语言实现链队列的初始化&进队&出队
/*链表实现队列的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typed ...
- 深入解读阿里云数据库POLARDB核心功能物理复制技术
日志是数据库的重要组成部份,按顺序以增量的方式记录了数据库上所有的操作,日志模块的设计对于数据库的可靠性.稳定性和性能都非常重要. 可靠性方面,在有一个数据文件的基础全量备份后,对运行中的数据库来说, ...
- 杭电ACM2003--求绝对值
求绝对值 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- WPF DesiredSize & RenderSize
DesiredSize DesiredSize介绍 关于DesiredSize的介绍,可以查看最新微软文档对DesiredSize的介绍 DesiredSize,指的是元素在布局过程中计算所需要的大小 ...
- Tomcat配置文件Executor元素属性介绍
该元素可用于Tomcat 6.0.11以及更高版本. 允许您为一个Service的所有Connector配置一个共享线程池.在运行多个Connector的状况下,这样处理非常有用,而且每个Connec ...
- Linux,在不使用U盘的情况下使用wubi.exe程序在Win7上安装ubuntu-14.04.3版系统
本文介绍如何在不使用U盘的情况下使用wubi.exe程序在Win7上安装ubuntu-14.04.3版系统. 花了一天的时间终于安装上了Ubuntu14.04,过程坎坷,是血泪史,开始报“cannot ...
- Android远程桌面助手(Build 0787)
Android远程桌面助手(Build 0787) 新增: 增加了输入法的快速切换功能,支持通过Google拼音输入法在PC端快速输入中文: 增加了Broadcast的暂停和继续功能: 某些应用截屏失 ...
- 微信小程序(二)登录授权实现
相对于上一节,这一节主要是动态获取数据,主要是对登陆信息的接收,以及页面获取授权按钮的相对相应(未授权时,显示,授权后不显示) 关键在于状态值的判断,以及对页面的不同响应(m-->v) wxml ...
- VS2017 EF本地数据库链接
1. 本地数据库连接 server name可以从链接字符串中取: (localdb)\MSSQLLocalDB 注意少写一个\. { "Logging": { "Inc ...
- C# 反射的例子
通过字符串变量访问控件 string t = "textbox1"; TextBox tb = (TextBox)this.GetType().GetField(t, System ...