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