数据库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原则,但是对性能影响比较大。


     本文转自arthur376 51CTO博客,原文链接:http://blog.51cto.com/arthur376/1859082,如需转载请自行联系原作者





相关文章
|
1月前
|
SQL 关系型数据库 数据库
事务隔离级别:保障数据库并发事务的一致性与性能
事务隔离级别:保障数据库并发事务的一致性与性能
|
1月前
|
算法 大数据 数据库
数据库事务:保障数据一致性的基石
数据库事务:保障数据一致性的基石
|
4月前
|
存储 SQL 关系型数据库
认识数据库中的事务机制
认识数据库中的事务机制
19 0
|
4月前
|
SQL 存储 关系型数据库
认识数据库中的事务机制(2)
认识数据库中的事务机制(2)。
37 0
|
4月前
|
监控 NoSQL Java
Redis数据库 | 事务、持久化
Redis数据库 | 事务、持久化
28 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】4、MySQL 事务学习
【MySQL 数据库】4、MySQL 事务学习
44 0
|
3月前
|
SQL Java 关系型数据库
数据库事务
数据库事务
23 0
|
4月前
|
存储 SQL 关系型数据库
数据库设计的基本原则和主要步骤以及应注意什么?
数据库设计的基本原则和主要步骤以及应注意什么?
167 0
|
17天前
|
程序员 数据库
数据库事务详解2
数据库事务详解
19 0
|
2月前
|
存储 关系型数据库 MySQL
MySQL 数据库系列(五)-----索引、事务与存储引擎(Linux版)
MySQL 数据库系列(五)-----索引、事务与存储引擎(Linux版)
28 0