Pgsql和Mysql的對比

2021-10-24 16:34:11 字數 2035 閱讀 5277

工作中用過這兩個資料庫,但都不是太深入,僅限於用而已,但給我留下的印象就是pgsql更好些,因為這兩個庫我都遇到過資料丟失的問題,前者我通過網上方法加自己的判斷有驚無險的恢復了,而後者搜尋各種資料加問身邊的專家都沒辦法。

剛網上搜了一下兩者的區別,總體的感覺也是前者是最好的開源關聯式資料庫,而後者是網際網路行業應用最廣泛的資料庫, 可能應用等多發現的坑也多,網上相關資料也多。如果讓我個人選沒特殊要求情況下會選前者。

關於兩個的區別可以看知乎上相關問題,回答很精彩,

其中乙個如下。

一、 postgresql 的穩定性極強, innodb 等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步,然而很多 mysql 使用者都遇到過server級的資料庫丟失的場景——mysql系統庫是myisam的,相比之下,pg資料庫這方面要好一些。

二、任何系統都有它的效能極限,在高併發讀寫,負載逼近極限下,pg的效能指標仍可以維持雙曲線甚至對數曲線,到頂峰之後不再下降,而 mysql 明顯出現乙個波峰後下滑(5.5版本之後,在企業級版本中有個外掛程式可以改善很多,不過需要付費)。

三、pg 多年來在 gis 領域處於優勢地位,因為它有豐富的幾何型別,實際上不止幾何型別,pg有大量字典、陣列、bitmap 等資料型別,相比之下mysql就差很多,instagram就是因為pg的空間資料庫擴充套件postgis遠遠強於mysql的my spatial而採用pgsql的。

四、pg 的「無鎖定」特性非常突出,甚至包括 vacuum 這樣的整理資料空間的操作,這個和pgsql的mvcc實現有關係。

五、pg 的可以使用函式和條件索引,這使得pg資料庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。

七、pg 的有多種集群架構可以選擇,plproxy 可以支援語句級的映象或分片,slony 可以進行字段級的同步設定,standby 可以構建wal檔案級或流式的讀寫分離集群,同步頻率和集群策略調整方便,操作非常簡單。

八、一般關係型資料庫的字串有限定長度8k左右,無限長 text 型別的功能受限,只能作為外部大資料訪問。而 pg 的 text 型別可以直接訪問,sql語法內建正規表示式,可以索引,還可以全文檢索,或使用xml xpath。用pg的話,文件資料庫都可以省了。

九,對於web應用來說,複製的特性很重要,mysql到現在也是非同步複製,pgsql可以做到同步,非同步,半同步複製。還有mysql的同步是基於binlog複製,類似oracle golden gate,是基於stream的複製,做到同步很困難,這種方式更加適合異地複製,pgsql的複製基於wal,可以做到同步複製。同時,pgsql還提供stream複製。

十,pgsql對於numa架構的支援比mysql強一些,比mysql對於讀的效能更好一些,pgsql提交可以完全非同步,而mysql的記憶體表不夠實用(因為表鎖的原因)

最後說一下我感覺 pg 不如 mysql 的地方。

第一,mysql有一些實用的運維支援,如 slow-query.log ,這個pg肯定可以定製出來,但是如果可以配置使用就更好了。

第二是mysql的innodb引擎,可以充分優化利用系統所有記憶體,超大記憶體下pg對記憶體使用的不那麼充分,

第三點,mysql的複製可以用多級從庫,但是在9.2之前,pgsql不能用從庫帶從庫。

第四點,從測試結果上看,mysql 5.5的效能提公升很大,單機效能強於pgsql,5.6應該會強更多.

第五點,對於web應用來說,mysql 5.6 的內建mc api功能很好用,pgsql差一些。

另外一些:

pgsql和mysql都是背後有商業公司,而且都不是乙個公司。大部分開發者,都是拿工資的。

說mysql的執行速度比pgsql快很多是不對的,速度接近,而且很多時候取決於你的配置。

對於儲存過程,函式,檢視之類的功能,現在兩個資料庫都可以支援了。

另外多執行緒架構和多程序架構之間沒有絕對的好壞,oracle在unix上是多程序架構,在windows上是多執行緒架構。

很多pg應用也是24/7的應用,比如skype. 最近幾個版本vacuum基本不影響pgsql 執行,8.0之後的pgsql不需要cygwin就可以在windows上執行。

至於說對於事務的支援,mysql和pgsql都沒有問題。

Pgsql和Mysql的對比

工作中用過這兩個資料庫,但都不是太深入,僅限於用而已,但給我留下的印象就是pgsql更好些,因為這兩個庫我都遇到過資料丟失的問題,前者我通過網上方法加自己的判斷有驚無險的恢復了,而後者搜尋各種資料加問身邊的專家都沒辦法。剛網上搜了一下兩者的區別,總體的感覺也是前者是最好的開源關聯式資料庫,而後者是網...

Pgsql和MySql的對比

工作中用過這兩個資料庫,但都不是太深入,僅限於用而已,但給我留下的印象就是pgsql更好些,因為這兩個庫我都遇到過資料丟失的問題,前者我通過網上方法加自己的判斷有驚無險的恢復了,而後者搜尋各種資料加問身邊的專家都沒辦法。剛網上搜了一下兩者的區別,總體的感覺也是前者是最好的開源關聯式資料庫,而後者是網...

PGSQL資料庫公升級指令碼對比sql

with nms130tables as select from dblink host 127.0.0.1 dbname nms 130 user postgres password hik12345 select schemaname,tablename from pg tables as t ...