数据库ACID原则和事务隔离级别

数据库ACID原则

A:原子性,Atomicity

C:一致性,Consistency

I:隔离性,Isolation

D:持久性,Durability

在mysql中的innodb引擎,原子性,一致性,隔离性通过redo和undo实现,redo就是ib_logfile物理文件,而undo默认在共享表空间ibdata里面,通过设置参数可以独立出来.

事务隔离级别

Read Uncommitted(读未提交)    缺点是允许脏读,不允许同时进行写操作,但允许其他事务读没有提交的数据

Read Committed(读已提交),    缺点是允许幻读(之前不存在,但后来已提交的数据),不允许同时进行写操作,只允许读已提交的数据,但允许不可重复读(两次读的数据允许不一致),oracle和sqlserver的默认隔离级别.

Repeatable Read(可重复读),    禁止不可重复读取和脏读,在极端情况下会有幻读,总体符合ACID原则,mysql默认的隔离级别.

Serializable(串行化),    缺点是并发能力差,最严格的事务隔离,完全符合ACID原则,

时间: 2024-11-05 11:25:49

数据库ACID原则和事务隔离级别的相关文章

学习数据库四大特性及事务隔离级别

学习数据库四大特性及事务隔离级别 一丶事务ACID四大特性 A(原子性Atomicity) : 事务是数据库的逻辑工作单位,事务里所有的操作要么全做,要么不做. C(一致性Consistency): 事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态. I(隔离性Isolation): 事务的执行不能被其他事务干扰. D(永久性Durability): 事务一旦提交,它对数据库中数据的改变就应该永久的. 二丶事务的隔离性 MySql存在4种隔离级别. 1.读未提交 Read Unco

mysql-Innodb事务隔离级别-repeatable read详解

http://blog.csdn.net/dong976209075/article/details/8802778 经验总结: Python使用MySQLdb数据库后,如使用多线程,每个线程创建一个db链接,然后再各自创建一个游标cursor,其中第一个线程读一个表中数据为空,第二个写入该表一条数据并提交,第一个线程再读该表数据将仍然无法读出.和多数据库的事务级别应该有关系:还可以在第一个读之前先插入一条,将能够读出第二个线程写入并提交过的数据. 转载自:http://blog.csdn.ne

图解MySQL事务隔离级别

本文主要通过大量的实例截图,来通俗的讲解MySQL的四种事务隔离级别的效果.关于事务隔离级别的概念以及不同隔离级别会引发的问题,大家可以自行百度,此处不再赘述. 标准数据库的四种事务隔离级别,不同隔离级别会引发的问题: 隔离级别 脏读 不可重复读 幻读 Read Uncommitted Y Y Y Read Committed N Y Y Repeatable Read N N Y Serializable N N N MySQL采用的默认隔离级别是Repeatable Read,我们可以用se

事务隔离级别,分布式数据库,ACID,CAP

spring事务 数据库事务的四种特性 1:原子性:事务包含的所有操作要么全部成功,要么全部失败回滚;成功必须要完全应用到数据库,失败则不能对数据库产生影响:?2:一致性:事务执行前和执行后必须处于一致性状态,例:用户A和用户B的前加起来一共是5000; 无论AB用户之间是如何相互转换的,事务结束后两个用户的钱加起来还是5000,这就是事务的一致性.?3:隔离性:当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不被其他事务的操作所干扰,多个并发事务之间要相互隔离:?4:持久性:一个事务

数据库:自己理解的“数据库事务隔离级别”

转载请注明出处: jiq?钦's technical Blog - 季义钦 引言:在网上搜了很多关于事务的文章,感觉单独来看都很难看懂,所以综合自己的理解写一篇我自己能理解的关于关系型数据库事务的文章. 一.事务特征 我们都知道数据库事务具备ACID特性: Atomic(原子性):一个事务要么成功,要么失败 Consistency(一致性):一致性代表了底层数据存储的完整性.事务执行前后数据库都必须处于一个合法的状态.什么才是一个合法的状态? 比如满足数据库的唯一性约束.数据类型验证.引用完整性

数据库事务隔离级别(转)

1.什么是事务,事务的特性是什么? 在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元操作,要么一个也不执行. SQL92标准定义了数据库事务的四个特点: 原子性(Atomicity):一个事务里面所有包含的SQL语句是一个执行整体,不可分割,要么都做,要么都不做. 一致性(Consistency):事务开始时,数据库中的数据是一致的,事务结束时,数据库的数据也应该是一致的. 隔离性

数据库之子查询和事务隔离级别

数据库大的知识点,特此补上.看的还是<漫画数据库>. 一.查询 如果要从一个数据库里面检索出某一字段为最大的数据项,那用什么方法呢?--其实用子查询就可以查到. 1)子查询是查询里面再嵌套查询. people表: 如果我要查询年龄最大的那一行数据项.就可以使用子查询. select * from people where age = (select max(age) from people); 选出people里面的最大年龄,再选出年龄等于最大值的数据. 当然,还有另外一种方法. select

数据库事务隔离级别与锁

一.事务的4个基本特征     所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位.例如,在关系数据库中,一个事务可以是一条SQL语句.一组SQL语句或整个程序. 事务ACID特性. ACID就是:原子性(Atomicity ).一致性( Consistency ).隔离性或独立性( Isolation)和持久性(Durabilily). 事务和程序是两个概念.一般地讲,一个程序中包含多个事务.事务的开始与结束可以由用户显式控制.如果用户没有显式地定义事

数据库事务、事务隔离级别以及锁机制详解

以下主要以MySQL(InnoDB引擎)数据库为讨论背景,纯属个人学习总结,不对的地方还请指出! 什么是事务? 事务是作为一个逻辑单元执行的一系列操作,要么一起成功,要么一起失败.一个逻辑工作单元必须有四个属性,称为 ACID(原子性.致性.隔离性和持久性)属性,只有这样才能成为一个事务. 数据库事物的四大特性(ACID): 1)原子性:(Atomicity) 务必须是原子工作单元:对于其数据修改,要么全都执行,要么全都不执行. 2)一致性:(Consistency) 事务在完成时,必须使所有的