自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)庫(kù)的 ACID 屬性是什么意思?

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
事務(wù)提交后,即使系統(tǒng)發(fā)生故障,數(shù)據(jù)也會(huì)被持久化。數(shù)據(jù)庫(kù)會(huì)使用預(yù)寫(xiě)日志(Write-Ahead Log)或類似機(jī)制來(lái)確保持久化。在分布式系統(tǒng)中,持久化意味著數(shù)據(jù)會(huì)復(fù)制到其他節(jié)點(diǎn)。

我們說(shuō)到數(shù)據(jù)庫(kù)的時(shí)候,常常提到其 ACID 屬性。那么 ACID 是什么意思呢?

ACID 是用來(lái)描述數(shù)據(jù)庫(kù)事務(wù)的屬性。反過(guò)來(lái)說(shuō),滿足 ACID 屬性的一系列數(shù)據(jù)庫(kù)操作被稱為事務(wù)。

下圖解釋了 ACID 在數(shù)據(jù)庫(kù)事務(wù)中的含義。

圖片圖片

01 原子性(Atomicity)

事務(wù)中的寫(xiě)操作是一次性執(zhí)行的,不能分解成更小的部分。如果在執(zhí)行事務(wù)時(shí)出現(xiàn)故障,同一個(gè)事務(wù)中的寫(xiě)入將被回滾。應(yīng)用程序可以安全地重試同一事務(wù),而不會(huì)產(chǎn)生任何副作用。

因此,原子性意味著 "全有或全無(wú)"(All or Nothing)。

02 一致性(Consistency)

CAP 定理中的 "一致性 "是指每次讀取都會(huì)收到最近的寫(xiě)入或錯(cuò)誤。與 CAP 定理不同的是,這里的一致性是指保留數(shù)據(jù)庫(kù)的不變性。事務(wù)寫(xiě)入的任何數(shù)據(jù)都必須符合事先定義的規(guī)則,并保持?jǐn)?shù)據(jù)庫(kù)處于良好狀態(tài)。比如我們?cè)跀?shù)據(jù)庫(kù)中設(shè)置了 Trigger 用來(lái)更新關(guān)聯(lián)表,那么數(shù)據(jù)寫(xiě)入后必須保證其正確執(zhí)行。

03 隔離(Isolation)

當(dāng)有來(lái)自兩個(gè)不同事務(wù)的并發(fā)寫(xiě)入時(shí),這兩個(gè)事務(wù)是相互隔離的。最嚴(yán)格的隔離是 "序列化"(serializability),即每個(gè)事務(wù)運(yùn)行時(shí)都像數(shù)據(jù)庫(kù)中唯一運(yùn)行的事務(wù)一樣。然而,這在現(xiàn)實(shí)中很難實(shí)現(xiàn),所以我們通常采用較弱的隔離級(jí)別。

04 持久化(Durability)

事務(wù)提交后,即使系統(tǒng)發(fā)生故障,數(shù)據(jù)也會(huì)被持久化。數(shù)據(jù)庫(kù)會(huì)使用預(yù)寫(xiě)日志(Write-Ahead Log)或類似機(jī)制來(lái)確保持久化。在分布式系統(tǒng)中,持久化意味著數(shù)據(jù)會(huì)復(fù)制到其他節(jié)點(diǎn)。

神書(shū) DDIA (Designing Data Intensive Applications) 中關(guān)于 ACID 有幾點(diǎn)很好的見(jiàn)地,值得我們思考:

  1. 一致性其實(shí)是應(yīng)用程序的責(zé)任,而不是數(shù)據(jù)庫(kù)的職責(zé)范圍。應(yīng)用程序可以使用原子性和隔離來(lái)保證數(shù)據(jù)的一致性。而數(shù)據(jù)庫(kù)系統(tǒng)只能保證各種數(shù)據(jù)庫(kù)規(guī)則被執(zhí)行了。
  2. ACID 四個(gè)屬性中只有隔離是用來(lái)描述并發(fā)情況的,原子性并不描述并發(fā)情況。
  3. 各個(gè)弱隔離級(jí)別都會(huì)帶來(lái)一些限制,我們需要清楚其底層機(jī)制。
責(zé)任編輯:武曉燕 來(lái)源: ByteByteGo
相關(guān)推薦

2024-09-19 08:10:54

2020-10-14 07:50:57

DNS劫持

2018-10-08 15:42:37

VoLTE4G流量語(yǔ)音

2010-09-26 10:29:45

JVMJava虛擬機(jī)

2021-01-21 21:24:34

DevOps開(kāi)發(fā)工具

2010-08-25 10:28:05

margin

2010-09-09 09:23:42

CSSDIV

2019-10-15 10:01:43

機(jī)器學(xué)習(xí)正則化人工智能

2010-09-08 15:55:20

SQL事務(wù)特性

2022-03-30 07:28:24

MySQL數(shù)據(jù)庫(kù)ACID

2025-01-10 09:25:10

NOSQL數(shù)據(jù)庫(kù)ACID

2013-01-18 15:25:27

無(wú)線網(wǎng)絡(luò)無(wú)線APWi-Fi

2014-07-28 08:28:38

Windows

2014-08-07 10:32:02

Windows微軟

2021-05-30 16:01:46

邊緣計(jì)算物聯(lián)網(wǎng)IOT

2022-06-15 07:32:24

數(shù)據(jù)庫(kù)分庫(kù)分表

2020-05-11 10:36:03

網(wǎng)絡(luò)工程割接網(wǎng)絡(luò)割接

2022-02-07 15:20:53

去中心化加密經(jīng)濟(jì)學(xué)加密貨幣

2024-01-10 16:11:41

2018-08-26 15:39:03

數(shù)據(jù)庫(kù)MySQL索引
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)