為什麼 PostgreSQL 沒有 MySQL 流行呢?

它們同樣都是開源的,雖然postgresql沒有mysql的myisam引擎速度快,但是對於innodb引擎來說,我感覺他們速度不相上下的。但是他們的市場份額好像差別太大了,而且網上關於postgresql的資料更是除了官方文檔外就幾乎沒了


pg跟mysql還是有很多不一樣的地方。個人認為,pg沒有大規模的應用,主要原因是pg沒有成熟的商業支持,不像mysql以前有mysql ab/sun,現在有oracle和一堆公司。另外一個,mysql dba比pg dba好招。開發人員也更熟悉mysql。


歷史原因,PG歷史上分出過很多成功的商業資料庫,這裡主要是指Ingress和Postgres的族系,嚴格來說PostgreSQL也是它們的後代之一。

這個巨大的族系包括了informix和Sybase(這意味著也包括了 MSSQL),這也就意味著開發力量並沒有集中。去年PostgreSQL的作者獲得圖靈獎,授獎原因之一是「……(他)發明的一些技術幾乎為所有的資料庫產品使用……」。

如果這些產品集合為一個,市場佔有率和利潤額度,以及整個資料庫市場的生態,恐怕會完全不同。

在歷史上,一次次偶然的選擇,使得在Linux和PHP崛起的時代,MySQL是最為恰當的、廉價的資料庫選擇,它支撐了大量以免費為賣點的互聯網商業模式。而PG在那個時代,並不算特別有競爭力。我舉個例子,至今在MySQL中一些實用的運維監控工具,在PG社區沒有實現。

但是一切正在改變,隨著PG的發展和進步,它也在彌補過去的不足,而隨著互聯網產業的競爭越來越激烈,業界也更需要功能強大完整的資料庫產品,這個時候,PG的優點就開始變的受人矚目。在十年前,很難想像有人關注這樣的討論。

下一個十年,我相信PG會佔據一些原本就不適合MySQL特色的市場,兩者會達到一個新的平衡。


1、MySQL崛起那會,PG雖然已經有許多高級特性,但那些特性互聯網用不著,互聯網需要的特性——快速——那時的PG不具備。歷史延續下來,造成了今天的局面。可以說互聯網成就了MySQL.

2、MySQL的主從複製、增量備份比PG設置簡單(知道PG的增量備份多耗磁碟不!),這些特性在互聯網是很有用的。而舊的pg vacuum不如今天的友好。這些都限制了他在早期的崛起。

3、不認為商業支持是主要原因——有幾個用MySQL的是買了商業支持的?倒是有些心理上的影響。

4、今天兩者性能、特性上相差不多,而我認為pg略勝一籌,但大局在適時間內難改變——習慣造成的。


因為考過gre的太少


難倒不是因為名字記不住?


pg之於msql,就像freebsd之於linux一樣。

pg同freebsd一樣,使用最寬鬆的bsd許可,具有優良血統,以及非常多優秀特性。高貴的東西距離平民遠一些。跟音樂一樣,流行的往往是大眾的,曲高和寡。


問題是否應該改成,「在國內,為什麼 PostgreSQL 沒有 MySQL 流行呢?」

由於沒有堅實的計算機科學的發展歷史,所以,在DB方面,國人只能人云亦云,MySQL流行是因為好像周圍MySQL用的人多,資料也多。所以,大家直接就用了,沒有什麼思考和比較。

再比如,只要是賣得出價格的「大型企業級軟體」基本都用Oracle DB,因為不用Oracle DB好像就顯得不專業了,哪怕記錄數可能只有幾萬條,最多十幾萬條而已。


這和LAMP組合有很大關係,而LAMP組合的成功其實和WordPress等等的成功有巨大的關係。


單從PG的功能上來看,其甩MySQL幾條街,堪至不是MySQL所能比擬的,PG9.5的出現,支持JSON,JSONB等文檔資料庫功能,功能非常之強大,在此不一一列舉,可參看官方文檔;

PostgreSQL 9.5 發布,帶來 UPSERT 等新特性

PG前身為加州伯克萊利大學科學實驗室出品,因此其科究技術大於其市場的推廣,而MySQL或Oracle相對於商業化,自然在市場點有主導優勢及決定性。

2015年12月資料庫排行:

2015年12月資料庫流行度排行榜 前三巋然不動

PG排名略有下降,與排名前三資料庫相差遙遠,現在面臨文檔資料庫,大數據和KV等資料庫的競爭,希望PG在商業市場上將來越來越好。

具有一流技術,普通市場能力的產品,注孤生啊。


因為好多與Postgre相關的問題都是「為什麼 PostgreSQL 沒有 MySQL 流行呢?」之類的問題。。。


老生常談,還是那句話:先入為主,功能強大,一般人搞不定。


感覺是先入為主的因素比較多。比較喜歡用PG,原因有很多,比如優化器強大、功能豐富、風格嚴謹、代碼規範和穩定性高等,國內PG圈子氣氛也比較健康、開放,現在這幾年發展的不錯了,繼續支持PG!


當初學習編程的時候,老師教的就是MySQL。


很簡單啊,日本的pg流行,很大程度上,是日本的大公司推的。但是,中國的大公司,根本不在乎成本,都上sql server或者oracle了。中國的小公司呢?他們的技術人員,大多來自論壇業的大牛,論壇,這種東西需要什麼資料庫?當然是MySQL啊。跑得快,是第一位的,丟不丟數據,無所謂。甚到,過期數據,我倒希望它能自己丟,不然,還得我來刪。我得防人使壞,玩考古啊。


簡單使用過一下PG MySQL對於訪問時延的優化比PG做的好 PG的查詢優化也不是MySQL可以比的了的…… 兩者都是很成功的資料庫…… 順便說一下 如果想了解資料庫內核 建議看PG MySQL的代碼質量實在是令人桌及


最近生產環境實測,PG查詢速度秒MYSQL,不過不熟悉,故不用。。。


歷史遺留問題是一方面,大家都說到了。還有一個很多類似技術在國內都不流行的一個重要原因是,許多牛B的程序員都跑國外去了,或者是忙於加班工作掙錢,懶得給小白科普。剩下的人就人云亦云,什麼學的簡單用什麼。

總之就是國內it技術沉澱還不夠


PostgreSQL其它功能還不錯,但分區功能就是垃圾!


1.MySQL背後有大公司支持,PostgreSQL早期沒有大公司支持沒有產生明星效應錯過了窗口期,結果是MySQL文檔社區發展的比較好,MySQL遇到的很多坑,可以很容易的在網上找到解決方案。

2.PostgreSQL優勢是功能強大但入門比較複雜,MySQL早期優勢是速度快入門簡單,很多小公司早期為了效率和簡單開始使用MySQL,當這些小公司變成大公司的過程中,MySQL也陸續開始支持存儲過程,Json等各項功能,導致常用功能已經追平PostgreSQL。

3.用MySQL的人,很多是學PHP的,而學PHP很多是用Windows操作系統入門,在系統支持上MySQL對Windows支持比PostgreSQL好一些。

4. PostgreSQL名字不好記,雖然是小事,但對於非英語國家,My遠比Postgre親切。

5.PostgreSQL其實沒有想像的那麼不流行。


這是歷史遺留問題,火不火跟軟體質量並沒有直接關係。


推薦閱讀:

mysql如何實現四大隔離級別的?
MySQL中inner join 和 cross join 的區別?
mysql如何解決評論遞歸查詢?
MySQL 和 PostgreSQL 相比,對 JSON 的支持如何?
SQL中 LEFT JOIN ON 條件的效率高低比較?

TAG:SQL | MySQL | PostgreSQL |