国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SQL 中的 ACID 和事務(wù)

關(guān)系數(shù)據(jù)庫(kù)依靠某些屬性來(lái)確保數(shù)據(jù)的可靠性和可信度。這些屬性用首字母縮略詞 ACID 來(lái)概括,分別代表原子性、一致性、隔離性和持久性。在本博客中,我們將使用現(xiàn)實(shí)生活中的場(chǎng)景和示例深入研究這些屬性。

原子性:全部或無(wú)

原子性確保事務(wù)被視為單個(gè)單元,該單元要么完全完成,要么完全中止。

示例:考慮一個(gè)場(chǎng)景,您將 100 美元從用戶 A 轉(zhuǎn)賬給用戶 B:

  • 初始狀態(tài):

    • 用戶A:1000美元

    • 用戶B:500美元

如果在傳輸過(guò)程中,數(shù)據(jù)庫(kù)在從用戶 A 扣除 100 美元之后但在將其添加到用戶 B 之前崩潰,則原子性可確保事務(wù)回滾到原始狀態(tài):

  • 回滾狀態(tài):

    • 用戶A:1000美元

    • 用戶B:500美元

隔離:保護(hù)您的交易不受彼此影響

數(shù)據(jù)庫(kù)中術(shù)語(yǔ)“隔離”的核心是保護(hù)的概念。將每筆交易想象成一個(gè)小泡沫。隔離可確保這些氣泡不會(huì)破裂或相互混合。通過(guò)這樣做,它可以保證我們的數(shù)據(jù)安全無(wú)害。

揭開(kāi)閱讀現(xiàn)象:

當(dāng)我們談?wù)摗白x取現(xiàn)象”時(shí),我們討論的是事務(wù)重疊時(shí)可能發(fā)生的意外情況。讓我們逐一看看:

  • 臟讀:想象一下有人正在打掃房間時(shí)偷看房間。一切都散了,一片狼藉。類(lèi)似地,臟讀就像查看另一個(gè)事務(wù)仍在更改的數(shù)據(jù)。由于這種變化可能會(huì)逆轉(zhuǎn),因此您所看到的內(nèi)容可能不會(huì)持續(xù)存在。

  • 不可重復(fù)讀取:想象一下您記下籃子里蘋(píng)果的數(shù)量。一分鐘后,你再次數(shù)數(shù),但數(shù)字發(fā)生了變化,因?yàn)橛腥四米吡嘶蛱砑恿艘粋€(gè)蘋(píng)果。這就是這里發(fā)生的事情;您在事務(wù)開(kāi)始時(shí)讀取的數(shù)據(jù)可能會(huì)在事務(wù)完成時(shí)發(fā)生變化。

  • 幻讀:這就像檢查一籃子里有蘋(píng)果,然后在下一次檢查中發(fā)現(xiàn)橘子。真是出乎意料?。‘?dāng)事務(wù)期間出現(xiàn)新數(shù)據(jù)(如那些神秘的橙子)時(shí),就會(huì)發(fā)生幻讀。

  • 丟失的更新:想象一下兩位藝術(shù)家在同一張畫(huà)布上繪畫(huà)。如果他們?cè)诒舜说淖髌飞献鳟?huà),他們的貢獻(xiàn)之一可能會(huì)消失。同樣,當(dāng)兩個(gè)事務(wù)嘗試更改同一數(shù)據(jù)時(shí),其中一個(gè)更改可能會(huì)被忽略。

隔離級(jí)別 - 設(shè)置邊界:

不同的隔離級(jí)別決定了我們保護(hù)交易泡沫的嚴(yán)格程度:

  • 未提交的閱讀:這就像一個(gè)門(mén)開(kāi)著的房間。你可以看到里面發(fā)生的一切,無(wú)論它是否完成。您可以看到其他事務(wù)正在進(jìn)行的(未提交的)更改和已完成的(已提交的)更改。

  • 已讀承諾:現(xiàn)在,門(mén)已微閉。只有當(dāng)事情完成并解決后你才能看到它們。此級(jí)別允許您僅查看其他事務(wù)中已完成的更改。

  • 可重復(fù)閱讀:想象一下,數(shù)一下籃子里的蘋(píng)果,然后在籃子周?chē)乓粋€(gè)防護(hù)罩,這樣就沒(méi)有人可以改變計(jì)數(shù)。在此級(jí)別下,您讀取的任何數(shù)據(jù)在整個(gè)交易過(guò)程中都保持一致。

  • 快照:這就像給房間拍一張照片。即使內(nèi)部情況發(fā)生變化,您也會(huì)始終查看照片,保持一致。從交易開(kāi)始,您就會(huì)看到數(shù)據(jù)的“凍結(jié)”視圖。

  • 可序列化:想象一座狹窄的橋,一次只能一個(gè)人通過(guò)。交易排隊(duì)等候,確保它們不會(huì)相互干擾。

隔離級(jí)別比較:

隔離級(jí)別比較

一致性:將其想象為事實(shí)檢查器

在數(shù)據(jù)庫(kù)的世界里,“一致性”就像有一個(gè)細(xì)致的事實(shí)檢查員,確保一切都匹配并且沒(méi)有矛盾。它確保數(shù)據(jù)庫(kù)中的每條信息都是可靠且值得信賴的。

用一個(gè)簡(jiǎn)單的類(lèi)比來(lái)理解數(shù)據(jù)一致性:

想象一下您正在翻閱一本相冊(cè)。每張照片下方都有一個(gè)數(shù)字,表示該照片在社交媒體平臺(tái)上被點(diǎn)贊的次數(shù)。

現(xiàn)在,除了這張相冊(cè)之外,您還有一本日記,記錄了誰(shuí)喜歡了哪張照片。如果相冊(cè)中的一張照片有 5 個(gè)贊,那么您的日記中應(yīng)該有 5 條喜歡該照片的人的條目。如果專(zhuān)輯說(shuō)有5個(gè)贊,但日記里只列出了3個(gè)名字,那就沒(méi)有意義了,對(duì)吧?這就是我們所說(shuō)的數(shù)據(jù)一致性——確保數(shù)據(jù)庫(kù)中不同位置的相關(guān)數(shù)據(jù)匹配。

簡(jiǎn)單來(lái)說(shuō)數(shù)據(jù)一致性:

  • 相冊(cè)(表一):貓的照片 - 5 贊

  • 日記(表2):愛(ài)麗絲喜歡這張貓的照片。鮑勃喜歡這張貓的照片。卡拉喜歡這張貓的照片。大衛(wèi)喜歡這張貓的照片。艾瑪喜歡這張貓的照片。

如果相冊(cè)和日記之間存在任何不匹配,我們值得信賴的事實(shí)檢查員(一致性)會(huì)指出并說(shuō):“嘿,這里有些不對(duì)勁!”

了解書(shū)籍示例的閱讀一致性:

現(xiàn)在,假設(shè)您已經(jīng)寫(xiě)了一本書(shū)并且擁有主副本(主要)。為了讓更多人閱讀它,您創(chuàng)建了這本書(shū)的副本(副本)。

如果您對(duì)主副本進(jìn)行更改(例如編輯段落),副本也應(yīng)反映該更改。如果有人在您進(jìn)行編輯后立即拿起副本進(jìn)行閱讀,那么他們最好會(huì)看到最新版本。如果不是立即,那么不久之后。這確保了無(wú)論某人正在閱讀主書(shū)還是其中一本副本,他們都能獲得一致的信息。

用數(shù)據(jù)庫(kù)術(shù)語(yǔ)來(lái)說(shuō),即使有一點(diǎn)點(diǎn)延遲(因?yàn)樵谌魏蔚胤竭M(jìn)行更改都需要一點(diǎn)時(shí)間),我們也應(yīng)該達(dá)到更新每個(gè)副本的程度。這稱(chēng)為“最終一致性”。

耐用性:將其視為保存游戲進(jìn)度

在數(shù)據(jù)庫(kù)世界中,持久性就像保存電子游戲中的進(jìn)度一樣。想象一下,您正在玩一個(gè)具有挑戰(zhàn)性的關(guān)卡,經(jīng)過(guò)數(shù)小時(shí)的努力,您終于征服了它。您不想冒失去進(jìn)度的風(fēng)險(xiǎn),對(duì)嗎?您需要保存游戲,以確保即使發(fā)生斷電或游戲機(jī)重新啟動(dòng),您也不必再次玩該關(guān)卡。這正是持久性對(duì)數(shù)據(jù)庫(kù)所做的事情;它確保一旦進(jìn)行更改,無(wú)論發(fā)生什么情況,都會(huì)保存并保持保存狀態(tài)。

確保保存游戲(數(shù)據(jù))的不同方法:

  1. “自動(dòng)保存”功能(預(yù)寫(xiě)日志):就像某些視頻游戲會(huì)在特定檢查點(diǎn)自動(dòng)保存您的進(jìn)度一樣,數(shù)據(jù)庫(kù)有一個(gè)系統(tǒng),可以在完全更新所有內(nèi)容之前記錄更改。這是一個(gè)快速的自我提示,“記住保存此更改?!?/p>

  2. 游戲日記(Journaling):有些玩家會(huì)寫(xiě)日記或日記,記錄他們?cè)谟螒蛑兴龅氖虑?。同樣,?shù)據(jù)庫(kù)可能會(huì)將更改存儲(chǔ)在單獨(dú)的“日記”中,然后再將其永久化。

  3. 強(qiáng)制保存選項(xiàng)(數(shù)據(jù)文件同步):您是否曾經(jīng)因?yàn)椴恍湃巫詣?dòng)保存而手動(dòng)選擇保存游戲?在數(shù)據(jù)庫(kù)世界中,有一種方法可以強(qiáng)制系統(tǒng)在更改后立即保存任何新數(shù)據(jù)。

  4. 多個(gè)保存文件(復(fù)制):為您的游戲提供多個(gè)保存文件總是一個(gè)好主意。同樣,數(shù)據(jù)庫(kù)通常會(huì)跨不同位置創(chuàng)建數(shù)據(jù)副本。如果一個(gè)“保存文件”出現(xiàn)問(wèn)題,還可以依靠其他文件。

  5. 云備份(備份和恢復(fù)):就像您可以在云上備份游戲進(jìn)度一樣,數(shù)據(jù)庫(kù)也有一個(gè)定期在其他地方保存數(shù)據(jù)的系統(tǒng)。這樣,如果出現(xiàn)問(wèn)題,他們可以從之前的點(diǎn)“加載”并恢復(fù)游戲(數(shù)據(jù))。

因此,簡(jiǎn)而言之,數(shù)據(jù)庫(kù)世界中的持久性就是確保一旦取得進(jìn)展(或更改),就不會(huì)丟失它。這是關(guān)于保存、重新保存以及為您的備份進(jìn)行備份!

ACID 屬性為數(shù)據(jù)庫(kù)可靠性提供了支柱。從銀行業(yè)務(wù)到社交媒體更新,這些原則確保我們的數(shù)據(jù)即使在系統(tǒng)故障的情況下也保持一致、可靠和值得信賴。通過(guò)理解這些概念,我們對(duì)現(xiàn)代數(shù)據(jù)庫(kù)系統(tǒng)的穩(wěn)健性和復(fù)雜性有了更深入的認(rèn)識(shí)。


文章來(lái)源地址http://www.zghlxwxcb.cn/article/385.html

到此這篇關(guān)于SQL 中的 ACID 和事務(wù)的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/385.html

如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系站長(zhǎng)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包