激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - 數據庫技術 - 三大流行數據庫(MongoDB、PostgreSQL和Harper)大比拼

三大流行數據庫(MongoDB、PostgreSQL和Harper)大比拼

2022-03-01 22:1551CTO陳峻編譯 數據庫技術

本文以當前流行的MongoDB和PostgreSQL兩大數據庫系統為參照,引入Harper這一全新的數據庫,并對三者的功能、結構、以及適用場景進行了比較。

在日常生活中,許多人都是在基于他們已經知道的事物基礎上,去學習或了解新的事物。這是人類的天性。同樣,在產品和技術方面,人們需要事先找到一個基線作為起點,然后問出類似:“相對于X,那么Y到底有哪些不同呢?”等問題。下面,我們將按照這樣的思路,以當前流行的MongoDBPostgreSQL兩大數據庫系統為參照,引入Harper這一全新的數據庫,并對三者的功能、結構、以及適用場景進行比較。

三大流行數據庫(MongoDB、PostgreSQL和Harper)大比拼

總體而言,在大多數情況下,鑒于多方面因素的考慮,我們并不需要得出“哪家數據庫最強?”的結論,而是要探索出在為特定項目選擇數據庫時,需要考慮的各種因素和適用場景。

定義

MongoDB被分類為NoSQL數據庫。由于使用的是類似JSON的文檔,作為可選的模式集合(schema),因此它是面向文檔(document-oriented)的。

PostgreSQL是傳統的RDBMS(relational database management system,關系數據庫管理系統)。由于主要被用于關系型數據,因此它本質上是面向對象的。

HarperDB是具有REST API和動態模式集合的分布式數據庫。它支持NoSQL和包括聯合(joins)功能在內的SQL。例如,您可以通過NoSQL JSON來提取數據,并立即通過SQL進行查詢。

差異概述

MongoDB與PostgreSQL:作為一個關系型數據庫,PostgreSQL可被用于處理更為復雜的過程、設計和集成。而作為一個NoSQL數據庫,MongoDB通常被用于簡單、非結構化的數據場景,同時也非常適合于大數據應用程序的開發。PostgreSQL能夠強制執行模式集合的驗證,而Mongo則不然。

HarperDB與MongoDB:作為一種文檔存儲,MongoDB非常適合非結構化數據;而HarperDB提供了完整的文檔存儲功能,以及企業級的ACID SQL,即:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、和持久性(Durability)。基準測試(Benchmark test)發現,HarperDB比Mongo快37倍,而價格卻不到其一半。HarperDB不但具有原生的REST API,支持針對JSON的SQL,而且更易于使用和管理。Mongo雖然已針對大規模的寫操作進行了優化,但是并未針對讀操作采取任何優化。而針對LMDB(Lightning Memory-Mapped Database)編寫的HarperDB數據存儲算法,可實現大規模的讀和寫操作,進而提高整體性能。

HarperDB與PostgreSQL:PostgreSQL是善于處理復雜數據或嚴格的一致性。而HarperDB比PostgreSQL更靈活,它簡化了大量的安裝、配置和管理工作。HarperDB不但允許那些具有關系型數據庫背景的開發人員繼續沿用SQL技能,還允許他們使用來自同一數據模型的NoSQL。

輔助功能

MongoDB、PostgreSQL和HarperDB均可在云端、本地、以及數據中心等任何地方運行。PostgreSQL雖然不像HarperDB Cloud和MongoDB Atlas那樣有云端版本,但是各個云提供商會提供所謂的PostgreSQL即服務(PostgreSQL-as-a-service)。

深入了解

MongoDB主要適用于C、C++和JavaScript語言編程;PostgreSQL則主要適用于C語言編程;而HarperDB適用于Node.js的編寫。此外,LMDB不但適用于C語言的編寫,而且在安裝過程中使用到了Python。

MongoDB在后臺采用BSON(binary JavaScript Object Notation,二進制JavaScript對象表示法),來加快查詢的速度。在您打開集合時,它會轉換為JSON以便被讀取。

PostgreSQL采用SQL(一種結構化查詢語言)來定義、訪問和操作數據庫。當然,PostgreSQL也有一個JSON數據類型。

HarperDB對數據的類型并無強制性要求。它當前存儲的所有數據屬性均為字符串,而且可以通過SQL和(或)NoSQL來查詢數據。同時,HarperDB也致力于讓管理員能夠顯式地設置屬性類型(如:數字或字符串型),以方便性能的調優。

數據存儲與架構

MongoDB將數據存儲為單獨的文檔,而并不考慮其屬性。PostgreSQL將數據存儲在傳統的表和行中。而HarperDB則將數據存儲在表、行、以及對象中,并且所有頂級屬性在默認情況下都已經建立了索引。

HarperDB能夠將獨特的數據存儲算法運行在LMDB上。這使得HarperDB可以在單個產品中,提取JSON文檔和關系型數據。HarperDB會持續將傳入的數據,映射到數據模型中。而無論傳入的數據是何種類型,它們都會根據HarperDB的內部數據模型來予以存儲,并方便了開發人員通過SQL或NoSQL進行查詢。

此外,MongoDB和HarperDB都具有分布式的體系架構,而PostgreSQL則被視為一種單體架構。

ACID屬性

由于支持企業級的ACID SQL事務,因此數據在HarperDB和PostgreSQL內具有可靠的有效性。而像MongoDB之類的NoSQL數據庫,通常注重的是終極一致性,而非ACID整體屬性。2020年5月,有一項研究發現了MongoDB未對交易進行完全隔離的錯誤,進而確證了它不符合ACID。當然,HarperDB和PostgreSQL都能夠遵循ANSI SQL標準。

模式集合和表

對于MongoDB和HarperDB而言,通過使用JSON,您可以靈活地更改架構,而不會產生任何后果。當然,對應的文檔可能會在鍵/值方面有所不同。

MongoDB和HarperDB都可以通過水平方向的擴展,來提高速度與性能。其中,HarperDB具有雙向表級(bidirectional table-level)的數據復制特性。通過使用HarperDB簡單的pub-sub模型,您可以訂閱和復制數據的方式,將數據水平發布到不同節點處。

PostgreSQL可以垂直方向擴展。隨著數據庫的變大,它會需要更多的空間或內存,因此對應的停機時間也會增加。也就是說,對于PostgreSQL之類的關系型數據庫,您與其在事后更改表的結構,并可能導致數據庫的停機,以及應用服務的中斷,不如在系統上線之前,就對整個架構進行完善的設計和配置。此外,PostgreSQL數據庫可以使用外鍵,來顯式地鏈接表與表之間的數據,以用于保持數據的規范化。

使用場景

如前文所述,由于PostgreSQL中的事務能夠遵循ACID屬性,而對于金融科技(fintech)之類的行業而言,他們需要對數據的狀態擁有絕對的控制權,因此Postgres之類的關系型數據庫是不錯的選擇。

如果您僅具有非結構化的數據,或是正在使用大數據,那么最好將水平擴展的方法,與MongoDB之類的工具協同使用。

相對于現有的數據庫系統,HarperDB更適合于同時需要SQL和NoSQL,快速應用開發與集成,邊緣計算,分布式計算,實時分析,以及高度事務性(high transactions)處理的項目。當然,如果您需要全文索引、高度結構化的關系型數據、跨系統的嚴格一致性、以及約束開發人員訪問或維護某些數據項目的話,HarperDB就不太適用了。

小結

總的說來,吸收了MongoDB和PostgreSQL各項優點的HarperDB,對SQL、NoSQL、以及NewSQL的各種產品功能,進行了擴展與市場融合,填補了其中的空白與短板,并為開發人員提供了實用且高效的工具。

原文標題:HarperDB vs MongoDB vs PostgreSQL,作者:Margo McCabe

原文地址:https://www.51cto.com/article/635497.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品免费一区二区三区四区 | 免费国产不卡午夜福在线 | 免费在线观看成年人视频 | 久久精品国产99国产精品亚洲 | 日韩精品羞羞答答 | 日本一区二区三区视频在线 | 51国产偷自视频区视频小蝌蚪 | 免费黄网站在线播放 | 激情久久免费视频 | 亚洲第一成人av | 免费黄色在线观看网站 | 国产男女爽爽爽爽爽免费视频 | 成人三区四区 | 55夜色66夜色国产精品视频 | 免费色片| 国产男女爽爽爽爽爽免费视频 | 禁漫天堂久久久久久久久久 | 成人免费午夜视频 | 久久久久二区 | 久草在线资源视频 | 久久97视频 | 国产一区二区三区视频免费 | 色播久久 | 国产免费高清 | 午夜视频啊啊啊 | 黄网站在线观 | 欧美精品一区二区视频 | 国产精品毛片无码 | 精国品产一区二区三区有限公司 | 精品人伦一区二区三区蜜桃网站 | 亚洲一区二区网址 | 久久国产成人午夜av浪潮 | 国产污网站在线观看 | 99精品视频免费 | 91一级毛片| 二区视频 | 亚洲欧美日韩一区二区三区在线观看 | 免费看污视频在线观看 | 国产亚洲精品综合一区91555 | 亚洲日本欧美 | 国产精品久久久久久模特 |