MySQL與Postgres兩大免費數據庫大不同
7月末,優步公司宣布將數據庫從Postgres切換到MySQL,個中原因又是什么呢?
在一百年前,人類的第一臺計算機還沒能誕生,黑紙白字是人們記錄信息的唯一方式,檔案館是信息的集結地,數據分析還只能通過人工的分類,檢索來完成。1951年Univac系統使用磁帶和穿孔卡片作為數據存儲,成為人類向大數據邁進的里程碑。
從文件系統發展到數據庫系統,人們對于數據信息處理能力越來越強,出現了以做數據庫發家的甲骨文公司(即IOE中的O:Oracle),也有很多種免費、開源的數據庫供我們使用。在現實生活中,包括Facebook、優步等企業都選擇了開源、免費的數據庫。其中,MySQL與Postgres已經成為最受歡迎的兩種免費數據庫,他們之間有有什么異同呢?7月末,優步公司宣布將數據庫從Postgres切換到MySQL,個中原因又是什么呢?
根據優步官方解釋,此次更換數據庫的原因是Postgres數據復制效率低下,Postgres更新已有行的效率低于MySQL,Postgres需要重寫每一個行索引,而MySQL只更新改變的索引。也就是說,此次更換的原因并非孰優孰劣,MySQL與Postgres各有自己的特點。
PostgreSQL
索引:PostgreSQL取決于存儲引擎。MyISAM:BTREE,InnoDB:BTREE。同時PG可以使用函數和條件索引。相比之下,MySQL支持B-樹、哈希、R-樹和Gist索引。在索引的復制能力方面MySQL更優,這也成為優步更換數據庫的重要原因。
一致性:數據的一致性是衡量一個數據庫優劣的重點,PostgreSQL是完全支持ACID特性的,它對于數據庫訪問提供了強大的安全性 保證,充分利用了企業安全工具,如Kerberos與OpenSSL等。在MySQL中,開發人員可以將服務器設定為嚴格SQL模式才能達到目的,否則可能會產生不規范數據。
穩定性:PostgreSQL的穩定性極強,Innodb等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步,然而很多MySQL用戶都遇到過Server級的數據庫丟失的場景——mysql系統庫是MyISAM的,相比之下,PG數據庫這方面要好一些。當然,對于MySQL而言,不同的版本穩定性也不盡相同,MySQL官方網站會提供穩定版本下載,開發環境使用的MySQL版本應該和生產中的大版本一致,用戶可選擇最新的穩定版本。
MySQL
應該說這兩種數據庫都是開源、免費并能運行在多個操作系統上的,無論是可擴展性、數據的一致性和可靠性都比較穩定。但二者在應用環境、場景和部分特性上不盡相同。二者沒有完全意義上的好壞,從整個發展過程來講,最初PostgreSQL的發展速度較慢,導致MySQL一度成為霸主,如今,雙方各有優劣,都成為不同應用場景下的最優數據庫。
自從MySQL被收購后,雖然仍保持開源的姿態,但實際上都有專業的工程師在碼代碼,發展也十分迅速,并出現了Standard、Enterprise、Classic、Cluster、Embedded與Community等多個版本,Twitter、Facebook與Wikipedia都是MySQL的忠實用戶。PostgreSQL則一直標榜自己為最先進的開源數據庫,同時它又比MySQL出現的早了九年,讓它在教育和部分國外企業中備受歡迎,同時其數據一致性與完整性也是PostgreSQL的高優先級特性。
總的來說,MySQL更為靈活,PostgreSQL更為可靠,用戶在選擇時一定要慎重,畢竟切換數據庫是一件費力且不討好的事情。
非常好我支持^.^
(2) 50%
不好我反對
(2) 50%
相關閱讀:
- [編程語言及工具] 常用于緩存處理的機制總結 如何避免緩存雪崩問題? 2023-10-24
- [電子說] 觸發器的基本原理、應用場景及優缺點 2023-10-23
- [電子說] SpringBoot物理線程、虛擬線程、Webflux性能比較 2023-10-23
- [存儲技術] AI大模型對數據存儲技術的發展趨勢 2023-10-23
- [電子說] 訪問控制中PIP的典型流程和關鍵點思考 2023-10-23
- [電子說] 物證管理系統|智物證DW-S404是一套成熟系統 2023-10-23
- [電子說] Python 梯度計算模塊如何實現一個邏輯回歸模型 2023-10-21
- [電子說] TinyDB :一個純Python編寫的輕量級數據庫 2023-10-21
( 發表人:steve )