中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

東坑網(wǎng)頁設計seo技巧

東坑網(wǎng)頁設計,seo技巧,wordpress七牛cdn設置,大良營銷網(wǎng)站建設如何本文為「數(shù)據(jù)庫全方位對比系列」第二篇,該系列的首部作品為「全方位對比 Postgres 和 MySQL (2023 版)」 為何對比 Postgres 和 MongoDB 根據(jù) 2023 年 Stack Overflow 調研,Postgres 已經(jīng)成為最受歡迎和渴望的數(shù)據(jù)庫了。 MongoDB 曾連續(xù) 4 年 (2017 - …

本文為「數(shù)據(jù)庫全方位對比系列」第二篇,該系列的首部作品為「全方位對比 Postgres 和 MySQL (2023 版)」

為何對比 Postgres 和 MongoDB

根據(jù) 2023 年 Stack Overflow 調研,Postgres 已經(jīng)成為最受歡迎和渴望的數(shù)據(jù)庫了。

file

MongoDB 曾連續(xù) 4 年 (2017 - 2020) 蟬聯(lián)此頭銜。根據(jù) DB-Engines 排名,Postgres 和 MongoDB 都是排名前 5 的數(shù)據(jù)庫。它們兩者都在爬樓梯,并且在奪取三大巨頭:Oracle, MySQL 和 Microsoft SQL Server 的市場份額。

file

MongoDB 被廣泛認為是一種與包括 Postgres 在內的 SQL 數(shù)據(jù)庫相對立的 NoSQL 數(shù)據(jù)庫。但近年來,它們正在趨同:

  • MongoDB 變得更像傳統(tǒng)關系型數(shù)據(jù)庫,增加了多文檔 ACID 事務,二級索引和高級查詢功能。
  • Postgres 不斷改進其 JSON 能力,如索引、查詢優(yōu)化和更多操作符,這不禁讓人們好奇 MongoDB 是否已經(jīng)過氣。

file

2018 年,The Guardian 寫了一篇關于將 MongoDB 遷移到 Postgres 的長文。自此,雖然發(fā)生了很多變化,但有一件事沒變:遷移數(shù)據(jù)庫是極其痛苦的。

file

因為需要與各種數(shù)據(jù)庫及其衍生產(chǎn)品集成,Bytebase 和各種數(shù)據(jù)庫密切合作,而最大的數(shù)據(jù)庫托管服務 Google Cloud SQL (https://cloud.google.com/sql) 也是 Bytebase 創(chuàng)始人的杰作之一。

根據(jù)實操經(jīng)驗,我們對 Postgres 和 MongoDB 在以下幾個維度進行了比較:

  • 許可證 License
  • 數(shù)據(jù)模型 Data Model
  • JSON 支持 JSON Support
  • 性能 Performance
  • 可靠性 Reliability
  • 伸縮性 Scalability
  • 易用性 Usability
  • 可運維性 Operability
  • 生態(tài)系統(tǒng) Ecosystem

除非另有說明,下文基于最新的主要版本 Postgres 15 和 MongoDB 6。在文章中,我們使用 Postgres 而不是 PostgreSQL,雖然 PostgreSQL 才是官方名稱,但被認為是 Postgres 史上最錯誤的決定。

許可證 License

  • Postgres 發(fā)布在 PostgreSQL 許可下,是一種類似于 BSD 或 MIT 的自由開源許可。
  • MongoDB 社區(qū)版采用由 MongoDB 公司自行創(chuàng)建的 Server Side Public License (SSPL) 發(fā)布,以防止他人提供競爭性的 MongoDB 服務,MongoDB 公司還根據(jù)要求提供商業(yè)許可證。

大多數(shù)公司使用數(shù)據(jù)庫來支持其內部基礎設施,Postgres 和 MongoDB 都允許此類使用。

數(shù)據(jù)模型 Data Model

  • Postgres 是關系型數(shù)據(jù)庫,它將數(shù)據(jù)存儲在預先定義好的列中,并通過使用外鍵來建立表之間的關系。
  • MongoDB 是面向文檔的數(shù)據(jù)庫,這意味著數(shù)據(jù)以文檔形式存儲在集合中。每個文檔都是一個類似 JSON 的結構,可以包含嵌套字段和數(shù)組。MongoDB 專為處理非結構化和半結構化數(shù)據(jù)而設計。

file

Postgres 也支持 JSON 列,因此可以像使用 MongoDB 一樣使用 Postgres,將表定義為:

CREATE TABLE my_collection (id SERIAL PRIMARY KEY,data JSONB
);

JSON 支持 JSON Support

MongoDB 和 Postgres 都非常擅長處理 JSON。MongoDB 使用自己發(fā)明的 BSON 格式存儲 JSON,而 Postgres 使用 JSONB 格式。如果有興趣,可以看下這個關于選擇在 Postgres 中使用 BSON 還是 JSONB 之間的討論:https://bit.ly/3pRLOzi。

MongoDB 有兩個優(yōu)點:

  • 內置 schema 驗證器。
  • 與 Node.js / 前端生態(tài)系統(tǒng)的集成。MongoDB 是全棧開發(fā)人員常用的選擇,他們通常會使用 Node 進行開發(fā)。

性能 Performance

性能主要由訪問模式?jīng)Q定。如果一個操作涉及不同的實體,MongoDB 通常更快,因為數(shù)據(jù)是 denormalized 的,并且不需要在表之間進行復雜的連接操作。另一方面,Postgres 能處理復雜查詢,這得益于 SQL 和其先進的查詢優(yōu)化器。

可靠性 Reliability

MongoDB 在早期因為不支持 ACID 事務而被認為是不太靠譜的。不過自從他們收購了 WiredTiger 并使用其 WiredTiger 存儲引擎后,就不一樣了。從事務角度來看,如今的 MongoDB 和 Postgres 一樣穩(wěn)定可靠。

MongoDB 通過其副本集提供內置的自動 failover 功能。而 Postgres 則需要像類似 pg_auto_failover 的第三方解決方案。

伸縮性 Scalability

MongoDB 可以進行橫向擴展 (scale out),而 Postgres 通常則是縱向擴展 (scale up)。

MongoDB 是一個支持自動分片的分布式數(shù)據(jù)庫。對于 Postgres 來說,我們通常會先將單節(jié)點的 postgres 進行縱向擴展,并盡可能地推遲使用分片解決方案。當然,對 Postgres 進行分片是可以的:

  • 分片和 ID 在 Instagram 的使用
  • 馴服大象:Notion 在 Postgres 上進行分片的經(jīng)驗教訓

易用性 Usability

MongoDB 不會事先強制 schema,并且容易上手。在 2010 年,10gen(開發(fā) MongoDB 的公司的原名)發(fā)布了官方 MongoDB Node.js 驅動程序的第一個版本,開發(fā)人員能輕松地從 Node.js 應用程序與 MongoDB 數(shù)據(jù)庫進行交互。該驅動程序提供了一個簡單直觀的 API,支持廣泛的 MongoDB 功能,包括查詢、索引和聚合等。正因為好用,如今,MongoDB 仍是全棧開發(fā)人員首選。

作為關系型數(shù)據(jù)庫,Postgres 強制對 schema 進行了約束。而即使在關系型數(shù)據(jù)庫中,Postgres 也比其他產(chǎn)品如 MySQL 更加嚴格。

file

Stack Overflow 的調查顯示,盡管 Postgres 是受訪者中最受歡迎的數(shù)據(jù)庫,但 MongoDB 在新手中更受歡迎。

而在處理復雜查詢方面,MQL (MongoDB Query Language) 則不如 SQL 強大。

可運維性 Operability

運行多節(jié)點的 MongoDB 比運行多節(jié)點的 Postgres 更容易,因為分片和 failover 可以由 MongoDB 來處理。不過,如果你在單個節(jié)點上分別運行這兩個數(shù)據(jù)庫,那么 MongoDB 的分布式特性可能會成為負擔。

各種第三方供應商提供了 Postgres 托管服務。MongoDB 的 License 阻止了第三方提供 MongoDB 托管服務,不過他們自己的 MongoDB Atlas 比對應的 Postgres 托管服務更加完善。畢竟,第三方很難擊敗第一方云服務。

生態(tài)系統(tǒng) Ecosystem

Postgres 有可擴展的架構,并且仍由社區(qū)維護。近年來,Postgres 生態(tài)系統(tǒng)蓬勃發(fā)展,它擁有眾多插件,使其能夠處理比其他數(shù)據(jù)庫更多樣化的任務。而且由于其自由許可證和堅實的架構,在每個應用程序平臺提供托管數(shù)據(jù)庫服務時,它們都選擇了 Postgres,從早期的 Heroku 到新興的 Supabase, render 和 Fly.io。

MongoDB 作為市值最高的商業(yè)開源企業(yè)采取了更商業(yè)化的做法。一旦在生態(tài)系統(tǒng)中出現(xiàn)了優(yōu)秀解決方案,MongoDB 公司都會考慮收購以確保其成為整體 MongoDB 產(chǎn)品線不可或缺的一部分。其中一些著名的收購包括:

  • WiredTiger 存儲引擎
  • mLab 托管服務
  • Realm 移動端數(shù)據(jù)同步方案
  • Compass MongoDB GUI 客戶端

盡管 Postgres 和 MongoDB 采取了截然不同的方式來培育生態(tài)系統(tǒng),但都取得了巨大成功。

Postgres or MongoDB?

file

在某些領域中,明顯一個數(shù)據(jù)庫比另一個更合適:

  • 如果你的應用程序具有復雜的業(yè)務邏輯并且需要復雜查詢,請選 Postgres。
  • 如果你的應用程序具有簡單的數(shù)據(jù)模型并需要處理海量數(shù)據(jù),請選 MongoDB。

然而,大多數(shù)應用程序用例介于兩者之間,而且兩個數(shù)據(jù)庫都非常強大:

  • 作為文檔型數(shù)據(jù)庫,MongoDB 提供了一流的 JSON 支持。而 Postgres 在開源關系型數(shù)據(jù)庫中也有著最好的 JSON 支持。
  • 對于全棧開發(fā)人員來說,MongoDB 曾經(jīng)是首選,因為它與 Node.js 完美集成。而隨著主要第三方應用平臺都提供托管 Postgres 服務,Postgres 則變得愈發(fā)有吸引力。
  • 對于后端開發(fā)人員來說,在添加事務支持后,MongoDB 變得更加誘人了。誰不想避免繁瑣的 schema 更改并享受更快速的迭代呢?
  • MongoDB Atlas 構建了最精細化的托管數(shù)據(jù)庫服務之一;而各種大小第三方供應商則都提供了出色的 Postgres 托管解決方案。

總體而言,Postgres 是一個更通用的數(shù)據(jù)庫,它采用關系模型、提供全面 SQL 功能、具備可擴展架構,并由一個熱情洋溢的社區(qū)推動。

MongoDB 是一個全面的數(shù)據(jù)庫解決方案,它普及了文檔模型、內置了伸縮性和高可用性,提供了完整的開發(fā)者體驗,并由一個敏銳的營利性商業(yè)實體推動著。

如果在 Postgres 和 MySQL 之間做選擇很困難,那么在 Postgres 和 MongoDB 之間選擇也不容易。而且隨著兩個數(shù)據(jù)庫都朝著更強的方向發(fā)展,選擇只會變得越來越困難。

最后,在一個組織內部 Postgres 和 MongoDB 共存也是很常見的情況。如果需要同時管理 Postgres 和 MongoDB 的開發(fā)生命周期,可以來了解一下 Bytebase。

file


💡 你可以訪問官網(wǎng),免費注冊云賬號,立即體驗 Bytebase。

http://www.risenshineclean.com/news/46916.html

相關文章:

  • 做外貿要自己建網(wǎng)站嗎網(wǎng)頁免費制作網(wǎng)站
  • 桂林賣手機網(wǎng)站seo網(wǎng)站優(yōu)化快速排名軟件
  • 市場營銷的八個理論seo系統(tǒng)培訓課程
  • 做外貿對學歷要求高嗎seo經(jīng)典案例分析
  • 南京本地網(wǎng)站建設視頻專用客戶端app
  • wordpress 圖片鏈接下載成都seo整站
  • 國內外做gif的網(wǎng)站網(wǎng)絡營銷推廣的方式
  • 湘潭學校網(wǎng)站建設 磐石網(wǎng)絡專注整合營銷傳播成功案例
  • 徐州方案公示在哪個網(wǎng)站西地那非片吃了多久會硬起來
  • 松江做營銷網(wǎng)站開封網(wǎng)絡推廣哪家好
  • 中文域名注冊報價表網(wǎng)站優(yōu)化怎么操作
  • 網(wǎng)站建設優(yōu)化推廣教程今日新聞大事件
  • 海外產(chǎn)品網(wǎng)站建設上海網(wǎng)絡推廣聯(lián)盟
  • 做外貿網(wǎng)站要多少錢國外免費網(wǎng)站服務器
  • 官方網(wǎng)站內容更新需要怎么做建站之星
  • 人民南路建設廳網(wǎng)站咨詢電話營銷網(wǎng)站的宣傳、推廣與運作
  • 淘寶客為什么做網(wǎng)站東莞疫情最新情況
  • 哪個網(wǎng)站做視頻有錢掙長春網(wǎng)站提升排名
  • 中國國際貿易網(wǎng)站公眾號如何推廣運營
  • 網(wǎng)站開發(fā)概述網(wǎng)站的優(yōu)化策略方案
  • 旅游電子商務網(wǎng)站設計我的百度購物訂單
  • 蘇州公司建設網(wǎng)站制作網(wǎng)站seo優(yōu)化方案設計
  • PHP套模板做網(wǎng)站他達拉非什么是
  • wordpress怎么做站內站搜索引擎名詞解釋
  • 溫州閥門外貿網(wǎng)站建設百度站長平臺app
  • dz論壇可以做招聘網(wǎng)站百度文章收錄查詢
  • 上海市工程建設信息網(wǎng)官方網(wǎng)站廣東seo價格是多少錢
  • 攝影網(wǎng)站網(wǎng)址大全愛站網(wǎng)查詢
  • 免費做團購網(wǎng)站的軟件好三臺網(wǎng)站seo
  • 手機網(wǎng)站開發(fā)注意友情鏈接怎么購買