優(yōu)步將數(shù)據(jù)庫(kù)從Postgres切換到MySQL
在一百年前,人類(lèi)的第一臺(tái)計(jì)算機(jī)還沒(méi)能誕生,黑紙白字是人們記錄信息的唯一方式,檔案館是信息的集結(jié)地,數(shù)據(jù)分析還只能通過(guò)人工的分類(lèi),檢索來(lái)完成。1951年Univac系統(tǒng)使用磁帶和穿孔卡片作為數(shù)據(jù)存儲(chǔ),成為人類(lèi)向大數(shù)據(jù)邁進(jìn)的里程碑。
從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫(kù)系統(tǒng),人們對(duì)于數(shù)據(jù)信息處理能力越來(lái)越強(qiáng),出現(xiàn)了以做數(shù)據(jù)庫(kù)發(fā)家的甲骨文公司(即IOE中的O:Oracle),也有很多種免費(fèi)、開(kāi)源的數(shù)據(jù)庫(kù)供我們使用。在現(xiàn)實(shí)生活中,包括Facebook、優(yōu)步等企業(yè)都選擇了開(kāi)源、免費(fèi)的數(shù)據(jù)庫(kù)。其中,MySQL與Postgres已經(jīng)成為最受歡迎的兩種免費(fèi)數(shù)據(jù)庫(kù),他們之間有有什么異同呢?7月末,優(yōu)步公司宣布將數(shù)據(jù)庫(kù)從Postgres切換到MySQL,個(gè)中原因又是什么呢?
根據(jù)優(yōu)步官方解釋,此次更換數(shù)據(jù)庫(kù)的原因是Postgres數(shù)據(jù)復(fù)制效率低下,Postgres更新已有行的效率低于MySQL,Postgres需要重 寫(xiě)每一個(gè)行索引,而MySQL只更新改變的索引。也就是說(shuō),此次更換的原因并非孰優(yōu)孰劣,MySQL與Postgres各有自己的特點(diǎn)。
一致性、穩(wěn)定性不相同
一致性:數(shù)據(jù)的一致性是衡量一個(gè)數(shù)據(jù)庫(kù)優(yōu)劣的重點(diǎn),PostgreSQL是完全支持ACID特性的,它對(duì)于數(shù)據(jù)庫(kù)訪問(wèn)提供了強(qiáng)大的安全性保證,充分利用了企業(yè)安全工具,如Kerberos與OpenSSL等。在MySQL中,開(kāi)發(fā)人員可以將服務(wù)器設(shè)定為嚴(yán)格SQL模式才能達(dá)到目的,否則可能會(huì)產(chǎn)生不規(guī)范數(shù)據(jù)。
穩(wěn)定性:PostgreSQL的穩(wěn)定性極強(qiáng),Innodb等引擎在崩潰、斷電之類(lèi)的災(zāi)難場(chǎng)景下抗打擊能力有了長(zhǎng)足進(jìn)步,然而很多MySQL用戶都遇到過(guò) Server級(jí)的數(shù)據(jù)庫(kù)丟失的場(chǎng)景——mysql系統(tǒng)庫(kù)是MyISAM的,相比之下,PG數(shù)據(jù)庫(kù)這方面要好一些。當(dāng)然,對(duì)于MySQL而言,不同的版本穩(wěn) 定性也不盡相同,MySQL官方網(wǎng)站會(huì)提供穩(wěn)定版本下載,開(kāi)發(fā)環(huán)境使用的MySQL版本應(yīng)該和生產(chǎn)中的大版本一致,用戶可選擇最新的穩(wěn)定版本。
應(yīng)該說(shuō)這兩種數(shù)據(jù)庫(kù)都是開(kāi)源、免費(fèi)并能運(yùn)行在多個(gè)操作系統(tǒng)上的,無(wú)論是可擴(kuò)展性、數(shù)據(jù)的一致性和可靠性都比較穩(wěn)定。但二者在應(yīng)用環(huán)境、場(chǎng)景和部分特 性上不盡相同。二者沒(méi)有完全意義上的好壞,從整個(gè)發(fā)展過(guò)程來(lái)講,最初PostgreSQL的發(fā)展速度較慢,導(dǎo)致MySQL一度成為霸主,如今,雙方各有優(yōu) 劣,都成為不同應(yīng)用場(chǎng)景下的最優(yōu)數(shù)據(jù)庫(kù)。
自從MySQL被收購(gòu)后,雖然仍保持開(kāi)源的姿態(tài),但實(shí)際上都有專業(yè)的工程師在碼代碼,發(fā)展也十 分迅速,并出現(xiàn)了Standard、Enterprise、Classic、Cluster、Embedded與Community等多個(gè)版 本,Twitter、Facebook與Wikipedia都是MySQL的忠實(shí)用戶。PostgreSQL則一直標(biāo)榜自己為最先進(jìn)的開(kāi)源數(shù)據(jù)庫(kù),同時(shí)它 又比MySQL出現(xiàn)的早了九年,讓它在教育和部分國(guó)外企業(yè)中備受歡迎,同時(shí)其數(shù)據(jù)一致性與完整性也是PostgreSQL的高優(yōu)先級(jí)特性。
總的來(lái)說(shuō),MySQL更為靈活,PostgreSQL更為可靠,用戶在選擇時(shí)一定要慎重,畢竟切換數(shù)據(jù)庫(kù)是一件費(fèi)力且不討好的事情。
分享到微信 ×
打開(kāi)微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。