数据库事务的4个特性理解

说到数据库事务的特性 ,应该本能的说出acid这个单词

acid 

adj. 酸的; 酸性的; 酸味的; 尖刻的;

n. <化>酸; 酸味物质;

原子性 Atomicity

要么做,要么不做。这个例子挺多的,就像二进制0/1 开关一样,要么开,要么关,不存在什么半开。还有类似boolean类型数据,就只有true ,false 。就像誓死如归的军人,要么战死,要么凯旋,绝对不会投降。

一致性 Consistency

要求A+B = 10 ,A B 两个变量必须一致,A=1 ,B一定要等于9,A=2,B一定要等于8.还有csdn博客,你关注了我 , 那么你就是我的粉丝,数据库两头都要存储。还有银行转账这个经典的例子。

隔离型 Isolation

参考一个好博文:http://interma.cnblogs.com/archive/2005/12/25/304472.html

 对数据操作,要么r,要么w,这样两个事务同时操作,数学排列组合下,就有2*2=4中情况,显然有问题。

参考下这篇讲解:http://www.oschina.net/question/258230_134502

      1 两个更新事物同时修改一条数据时(丢失更新

2 一个更新事物更新一条数据时,另一个数据读取了还没提交的更新(读脏)

可以理解为 这个人性子急,我都还没弄好,你这么快就催,结果就错了

3一个读取事物读取一条数据时另一个更新事物修改了这条数据,这时就会出现不可重现的读取(不可重复读

我在做,还没做完,你插手干嘛,跟上面的性子急差不多

4一个读取事物读取时,另一个插入事物插入了一条新数据,这样就可能多读出一条数据,出现幻读(幻读

持久性 Durability

一旦事务提交成功,数据修改是永存的。

参考下:http://www.cnblogs.com/Amaranthus/p/3683076.html

这个与内存,磁盘数据存储有关,还要涉及到缓存


转载下这篇文章:http://blog.csdn.net/shuaihj/article/details/14163713  对这4个特性的理解


待完。。。。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26437925/article/details/50739813
上一篇Java 2016-2-25学习反思
下一篇redis 生存时间 expire ttl
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭