標籤:

為什麼 PostgreSQL 在國內流行度遠不如 MySQL,主要是哪些方面的原因造成的?

個人認為 PostgreSQL 無論在功能、性能還是自由度上都高 MySQL 一個級別。


我覺得跟Linux超越BSD是一樣一樣的,BSD/PostgreSQL由於各種原因錯過了那個窗口期,大量開發者都使用了Linux/MySQL,在不同的規模效應下,品質和細節已經無法影響這個局面了。


mysql的所有問題,基本有解,有很成熟的方案,而PostgreSQL沒有高水平的團隊不要輕易去嘗試,

"功能、性能還是自由度"並不是運維一個產品最重要的指標. 應該從系統架構,後期運維更廣泛的角度考量.


我本人作了一年多的PostgreSQL技術支持服務,

主要是針對PostgreSQL的商業版本Postgre Plus Advanced Server,而且也還正在作...

我曾經向PostgreSQL技術社區提過一些技術問題。

他們回答問題還是蠻快的,但是涉及到一些設計上的事情,感覺到社區版的核心人員很固執,即使是明顯的錯誤,也不願意承認。

它的學院派味道太濃,對很多商業上的考慮比較少。

例如使用神經遺傳演算法解決幾千個表連接時的連接順序問題;這種問題商業界可能不會有人這麼干。

而像商業應用必須考慮到index生成問題:一個應用不斷在訪問資料庫時,運行 create index concurrently 居然會一直等待。而且死活不會被承認為bug。

我認為MySQL能夠流行起來,一定有它的道理。而PostgreSQL出現很多年了,甚至可以說和Ingres/DBase/CA DB/Sybase SQL Server都有淵源,但是沒能流行也一定有它的原因。主要還是沒有貼近商業界吧


mysql用的人多,但mysql有它的局限性,一般在mysql上碰到釘子了才會考慮postgres,但問題是mysql能適用於絕大部分互聯網項目。

postgres也在慢慢流行起來了,畢竟它的優勢在那裡——對事務的良好支持,並發良好的支持,以及複雜查詢的優化能力。這對於很多對一致性要求高的複雜系統都是很有必要的。


關於這個問題的答案,我的見解如下:

先插播一段回憶

——————————————————

那是在2005年,我開始接觸人生中的第二個資料庫產品(第一個是SQL Server2000),就是PostgreSQL。 ,當時版本號是7.3還是7.4來著,不太記得了。我記得當時在Red Hat Linux上用並不熟練的手法,一遍翻著google,一遍編寫著操作PG的腳本。當時WinXP已是個人電腦的主流系統。但是這個版本號已是7開頭的資料庫居然木有一個社區官方的win32版本!

另一方面,從維基百科上的資料來看,1995年誕生的MySQL甚至在誕生後沒多久的版本中就已經開始支持Windows98了。

——————————————————

從計算機的歷史來看,與風生水起的unix系操作系統相比,微軟的Dos-&>Windows系統怎麼看都是小弟。但中國的改革開放是世界歷史的一朵奇葩,奇葩到我們開始計算機大規模運用的時間比歐美晚了幾十年。導致我們剛開始起步時,微軟已經做大。在我們的商業運用中,其實微軟的Dos-Windows系一直都有很大的話語權。因為大量的IT從業者都是從Dos-Windows學起來的。(佐證之一就是,我的大學母校,這個以計算機係為招牌系的985「名校」,當年在我求學時,學校機房提供的編程環境是清一色的MS-Dos + Turbo C。從後來讀到的一些米國的技術書上來看,貌似國外的名校一般不會這麼干。)

在中國大量的技術者的技術背景都來源於微軟的情況下, ,時間線再往前推10年左右(這些年來我國it行業進步迅猛), 眼前有兩個開源的資料庫產品,一個是輕量級但很早就支持win32的MySQL,另一個是學院派氣息濃厚但對支持windows並不情願的PostgreSQL,你會做什麼選擇?


很多年前,MySQL爆發的時候,PostgreSQL在性能、易用性和對Windows的支持遠遠不如MySQL

現在的PostgreSQL或許比MySQL好,但已經錯失一個重要的時機,想要代替MySQL需要花更多的努力


我比較同意「BSD/PostgreSQL錯過了發展窗口期」的說法。


這兩款產品的根本思路不同,PostgreSQL是想做傳統的RDBMS,說白了就是想做個開源的Oracle出來。而MySQL則是為互聯網而生的,輕裝上陣,摒棄那些強大但笨重(也不好開發)的特性,先佔領了陣地。


用編程語言現實舉例: 讓ruby的性能提高一倍, 再加十個八個豪華的搶眼的語言特性, 但是把rails從這個世界裡去掉了, 你覺得用ruby的人是增加還是減少?

用遊戲機舉例:同一時期,Dreamcast 性能完爆PS 十條街但是遊戲少,結果PS勝. 同樣的故事發生在Gameboy和GameGear身上.

一個東西是否流行,很多時候不是取決於這個東西自己,而是它配套的其他東西.


市場決定一切,搶佔了先機,有了廣大的用戶基礎和社區支持。時間長了,自然被接受,PostgreSQL就算再優秀,一般企業也不會輕易遷移到上面去啊


首先,我從來不認為「PostgreSQL 無論在功能、性能還是自由度上都高 MySQL 一個級別」。

關鍵是成熟應用,在實際應用中,主要是看一家公司對某個技術的掌控程度。

就像現在很多網站用.Net一樣,你就敢說Java比.Net好很多嗎?

扯淡!


開始對Windows支持不好,配置複雜,性能低下,後來雖然好了,但是市場沒有了。另外,MySQL用的人多,各種解決方案層出不窮,自然就有優勢。不過在複雜場景的使用下,優勢還是有的。現在在做企業生產雲平台,開始MySQL,最近終於下決心換掉了,改了PostgreSQL。畢竟還沒有到必須要幾千個節點才能保證運營的地步,而且對數據安全要求高,數據結構複雜。對普通應用,一輛車就是有限的記錄,對我們,一輛車是包含很多級物料的樹狀結構。最終,在沒有精力優化MySQL的情況下,選了PostgreSQL。


這個問題前面的回答都被打臉了,pg在矽谷的上升非常快,跟mongo幾乎是並駕齊驅,在互聯網時代,作為一個傳統關係型db,能有如此上升勢頭,可喜可賀,至於國內,反正從來都是跟風的,過不了幾年跟著搞就是了


MySQL安裝配置簡單,PG的配置較之複雜。


PG方案的成熟度不及MYSQL,上手也不容易

XP上的使用遠不及MYSQL

PHP逐漸流行的過程中,平台對於MYSQL的支持好於PG


pg 8.4 之前是不太適合商用的, 有很多壁壘,

國內呢,就不說了 mysql,搭上 lamp 的順風車而已,

在日本 PG 的流行遠遠的超過了mysql .


PostgreSQL 無論在功能、性能還是自由度上都高 MySQL 一個級別。

別嘴遁,talking is cheap,請拿出東西來說明,拿出普適場景來測試性能,舉例說明功能上的差異。

mysql支持完善的備份 修復等,postgresql就沒有,性能上,postgresql的hash索引遠遠不如mysql的hash索引,請給我一個postgresql更強的有說服力的各種例證 謝謝。


關鍵是沒有太多用這個做出成熟的項目和平台,這也是對比後給一般人的選擇一個很明確的判斷。但是個人還是比較支持pgsql,雖然之前的專項系統我們最後也是很可恥的在用Mysql


MYSQL有LAMP的順風車 PostgreSQL 的中文社區和推廣沒有MYSQL用心


推薦閱讀:

提高MySQL性能的7個技巧
MySQL主資料庫負責增刪改,從資料庫負責增改怎麼配置?
mysql如何解決評論遞歸查詢?

TAG:MySQL | PostgreSQL |