ACID

事務(wù)具有4個(gè)特征,分別是原子性、一致性、隔離性和持久性,簡稱事務(wù)的ACID特性;

一、原子性(atomicity)

一個(gè)事務(wù)要么全部提交成功,要么全部失敗回滾,不能只執(zhí)行其中的一部分操作,這就是事務(wù)的原子性

二、一致性(consistency)

事務(wù)的執(zhí)行不能破壞數(shù)據(jù)庫數(shù)據(jù)的完整性和一致性,一個(gè)事務(wù)在執(zhí)行之前和執(zhí)行之后,數(shù)據(jù)庫都必須處于一致性狀態(tài)。

如果數(shù)據(jù)庫系統(tǒng)在運(yùn)行過程中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成的事務(wù)對數(shù)據(jù)庫所作的修改有一部分已寫入物理數(shù)據(jù)庫,這是數(shù)據(jù)庫就處于一種不正確的狀態(tài),也就是不一致的狀態(tài)

三、隔離性(isolation)

事務(wù)的隔離性是指在并發(fā)環(huán)境中,并發(fā)的事務(wù)時(shí)相互隔離的,一個(gè)事務(wù)的執(zhí)行不能不被其他事務(wù)干擾。不同的事務(wù)并發(fā)操作相同的數(shù)據(jù)時(shí),每個(gè)事務(wù)都有各自完成的數(shù)據(jù)空間,即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)時(shí)隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能相互干擾。

在標(biāo)準(zhǔn)SQL規(guī)范中,定義了4個(gè)事務(wù)隔離級別,不同的隔離級別對事務(wù)的處理不同,分別是:未授權(quán)讀取,授權(quán)讀取,可重復(fù)讀取和串行化

1、讀未提交(Read Uncommited),該隔離級別允許臟讀取,其隔離級別最低;比如事務(wù)A和事務(wù)B同時(shí)進(jìn)行,事務(wù)A在整個(gè)執(zhí)行階段,會將某數(shù)據(jù)的值從1開始一直加到10,然后進(jìn)行事務(wù)提交,此時(shí),事務(wù)B能夠看到這個(gè)數(shù)據(jù)項(xiàng)在事務(wù)A操作過程中的所有中間值(如1變成2,2變成3等),而對這一系列的中間值的讀取就是未授權(quán)讀取

2、授權(quán)讀取也稱為已提交讀(Read Commited),授權(quán)讀取只允許獲取已經(jīng)提交的數(shù)據(jù)。比如事務(wù)A和事務(wù)B同時(shí)進(jìn)行,事務(wù)A進(jìn)行+1操作,此時(shí),事務(wù)B無法看到這個(gè)數(shù)據(jù)項(xiàng)在事務(wù)A操作過程中的所有中間值,只能看到最終的10。另外,如果說有一個(gè)事務(wù)C,和事務(wù)A進(jìn)行非常類似的操作,只是事務(wù)C是將數(shù)據(jù)項(xiàng)從10加到20,此時(shí)事務(wù)B也同樣可以讀取到20,即授權(quán)讀取允許不可重復(fù)讀取。

3、可重復(fù)讀(Repeatable Read)

就是保證在事務(wù)處理過程中,多次讀取同一個(gè)數(shù)據(jù)時(shí),其值都和事務(wù)開始時(shí)刻是一致的,因此該事務(wù)級別禁止不可重復(fù)讀取和臟讀取,但是有可能出現(xiàn)幻影數(shù)據(jù)。所謂幻影數(shù)據(jù),就是指同樣的事務(wù)操作,在前后兩個(gè)時(shí)間段內(nèi)執(zhí)行對同一個(gè)數(shù)據(jù)項(xiàng)的讀取,可能出現(xiàn)不一致的結(jié)果。在上面的例子中,可重復(fù)讀取隔離級別能夠保證事務(wù)B在第一次事務(wù)操作過程中,始終對數(shù)據(jù)項(xiàng)讀取到1,但是在下一次事務(wù)操作中,即使事務(wù)B(注意,事務(wù)名字雖然相同,但是指的是另一個(gè)事務(wù)操作)采用同樣的查詢方式,就可能讀取到10或20;

4、串行化

是最嚴(yán)格的事務(wù)隔離級別,它要求所有事務(wù)被串行執(zhí)行,即事務(wù)只能一個(gè)接一個(gè)的進(jìn)行處理,不能并發(fā)執(zhí)行。

四、持久性(durability)

一旦事務(wù)提交,那么它對數(shù)據(jù)庫中的對應(yīng)數(shù)據(jù)的狀態(tài)的變更就會永久保存到數(shù)據(jù)庫中。--即使發(fā)生系統(tǒng)崩潰或機(jī)器宕機(jī)等故障,只要數(shù)據(jù)庫能夠重新啟動,那么一定能夠?qū)⑵浠謴?fù)到事務(wù)成功結(jié)束的狀態(tài)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、ACID ACID,是指在可靠數(shù)據(jù)庫管理系統(tǒng)(DBMS)中,事務(wù)(transaction)所應(yīng)該具有的四個(gè)特性...
    子曰不如歸閱讀 1,189評論 0 1
  • 在實(shí)際的業(yè)務(wù)場景中,并發(fā)讀寫引出了事務(wù)控制的需求。主要關(guān)注事務(wù)的ACID和隔離性的4個(gè)級別。 ACID 事務(wù)指"一...
    猴子007閱讀 1,064評論 0 5
  • 愛,讓生活充滿色彩,愛,讓人世間變得溫暖。 昨天,作為團(tuán)區(qū)委的一名志愿者,參與了本學(xué)期第一次活動—...
    張家小鬧閱讀 700評論 0 0
  • 備胎的終極意義不是一夜轉(zhuǎn)正,而是愛,救贖和保障以及內(nèi)心的底氣。備胎,最好是備而不用,一旦備胎轉(zhuǎn)正,必然是出現(xiàn)了大事...
    布衣暖閱讀 256評論 0 0
  • 爸爸在,力量在。未來的日子有我在… 1997年8月,我出生了。 那是一個(gè)下著瓢潑大雨的夜晚,凌晨三點(diǎn)的夜晚因?yàn)槲业?..
    艷偉閱讀 819評論 14 12

友情鏈接更多精彩內(nèi)容