MongoDB發(fā)布4.0版本是否支持ACID事務(wù),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、增城網(wǎng)站維護(hù)、網(wǎng)站推廣。
MongoDB最近發(fā)布了最新的4.0版本。
毫無(wú)疑問(wèn),這一版本的主要特性是支持多文檔ACID事務(wù)。MongoDB向與關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品的融合邁出了一大步,現(xiàn)在支持會(huì)話(huà)的概念,并可以使用start_transaction()和commit_transaction()方法將多個(gè)數(shù)據(jù)庫(kù)命令包含在單個(gè)MongoDB事務(wù)中。
MongoDB的事務(wù)遵循著名的ACID模型。原子性可以確保屬于同一個(gè)事務(wù)的命令要么全部被執(zhí)行要么都不執(zhí)行,永遠(yuǎn)不會(huì)有剩余或出現(xiàn)部分?jǐn)?shù)據(jù)。一致性是指數(shù)據(jù)庫(kù)始終保持從一個(gè)有效狀態(tài)轉(zhuǎn)換到另一個(gè)有效狀態(tài),永遠(yuǎn)不會(huì)處于無(wú)效狀態(tài)。隔離保證了多個(gè)事務(wù)可以同時(shí)執(zhí)行,而其中任何一個(gè)事務(wù)都無(wú)法查看其他事務(wù)的部分結(jié)果。同時(shí)執(zhí)行多個(gè)事務(wù)與順序執(zhí)行它們具有相同的最終結(jié)果。持久性可以保證即使在系統(tǒng)出現(xiàn)故障的情況下,已提交的事務(wù)也將保持持久性。
MongoDB的多文檔事務(wù)僅適用于使用WiredTiger存儲(chǔ)引擎的服務(wù)器,且當(dāng)前僅支持單個(gè)副本集。4.2版本將帶來(lái)分片集群支持。
多文檔事務(wù)具有一些限制,例如無(wú)法影響數(shù)據(jù)庫(kù)目錄(即列出索引和集合),并且無(wú)法執(zhí)行不屬于CRUD和信息列表范圍內(nèi)的命令。
這些事務(wù)只能使用readPreference和readConcern,local或majority。事務(wù)內(nèi)的readPreference會(huì)覆蓋掉在集合、數(shù)據(jù)庫(kù)和客戶(hù)端級(jí)別設(shè)置的readPreference。
查詢(xún)游標(biāo)在事務(wù)中是隔離的,這意味著事務(wù)中的getMore操作只能在內(nèi)部使用,然后事務(wù)外的只能在事務(wù)外使用。MongoDB提供了大量用于支持事務(wù)操作的命令。
MongoDB Stitch是MongoDB提供的一個(gè)無(wú)服務(wù)器平臺(tái),用于快速開(kāi)發(fā)可安全訪問(wèn)MongoDB服務(wù)的客戶(hù)端應(yīng)用程序,現(xiàn)已公開(kāi)發(fā)布。MongoDB Stitch通過(guò)JavaScript函數(shù)的方式提供無(wú)服務(wù)器功能,還提供了QueryAnywhere,讓客戶(hù)端代碼可以安全地從Web或移動(dòng)應(yīng)用程序查詢(xún)MongoDB服務(wù)器。在數(shù)據(jù)庫(kù)發(fā)生變更時(shí),觸發(fā)器將做出一些動(dòng)作,類(lèi)似于RDBMS的觸發(fā)器。即將推出的Mobile Sync將允許MongoDB服務(wù)器和移動(dòng)客戶(hù)端(已經(jīng)測(cè)試版中發(fā)布的MongoDB mobile)之間進(jìn)行自動(dòng)數(shù)據(jù)同步。
MongoDB 4.0版引入了double、string、objectId、boolean、date、integer、long和decimal類(lèi)型之間的類(lèi)型轉(zhuǎn)換。這樣可以增強(qiáng)數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)轉(zhuǎn)換,減少對(duì)ETL過(guò)程的依賴(lài)。
測(cè)試版中還包括了MongoDB Enterprise Kubernetes Operator,用于在Kubernetes集群中部署MongoDB,同時(shí)利用MongoDB Ops Manager的功能。開(kāi)發(fā)人員可以下載最新版本,也可以試用MongoDB Atlas提供的在線(xiàn)服務(wù)。
看完上述內(nèi)容,你們掌握MongoDB發(fā)布4.0版本是否支持ACID事務(wù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!