ACID理解

Posted cuiqq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACID理解相关的知识,希望对你有一定的参考价值。

数据库事物的4个特性。

A原子性:多次操作要么全部成功,要么全部失败。undo日志是在事务执行失败的时候撤销对数据库的操作,保证了事务的原子性(Atomicity)

C一致性:一致性这个最不好理解。数据库的AID特性使得,数据库能够达到一致性,这个目标。

I隔离性:两个事物操作同一个的表,能做到互不影响。-》数据库隔离级别-》数据库隔离级别又是通过加锁来实现的-》共享锁(读锁)、排他锁(写锁)

D持久性:只要提交执行结束,数据就一定保存成功。redu日志用来在断电/数据库崩溃等状况发生时重演一次刷数据的过程,把redo日志里的数据刷到数据库里,保证了事务的持久性(Durability)

 

1、读未提交(read-uncommitted):这种隔离级别下、会解决更新丢失的问题、出现脏读、不可重复读和幻读的问题。
2、读已提交(read-committed):这种隔离级别下会出现不可重复读和幻读的问题。(这是Oracle的默认隔离级别)
3、可重复读(repeatable read):这种情况下会出现幻读的问题。(这是mysql默认的隔离级别、其实mysql在这种隔离级别下解决了幻读的问题)
4、串行化(serializable):这种隔离级别最高、也是最慢、它是以串行化的方式执行的。解决所有的并发问题。

之所以要隔离都是并发惹的祸,并发时才会同时出现两个事物https://blog.csdn.net/apologizetm/article/details/88389785

 

https://blog.csdn.net/fanxing1964/article/details/82252774

以上是关于ACID理解的主要内容,如果未能解决你的问题,请参考以下文章

mysql的ACID的理解

MySQL - 深入理解 MySQL 的事务和隔离级别

理解事务(ACID)——原子性一致性隔离性和持久性

JTA的使用与理解

java中事务的理解

理解事务的4种隔离级别