當前位置:編程學習大全網 - 編程語言 - mysql和postgresql的區別

mysql和postgresql的區別

二、任何系統都有它的性能極限,在高並發讀寫,負載逼近極限下,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有極其強悍的 SQL 編程能力(9.x 圖靈完備,支持遞歸!),有非常豐富的統計函數和統計語法支持,比如分析函數(ORACLE的叫法,PG裏叫window函數),還可以用多種語言來寫存儲過程,對於R的支持也很好。這壹點上MYSQL就差的很遠,很多分析功能都不支持,騰訊內部數據存儲主要是MYSQL,但是數據分析主要是HADOOP+PGSQL(聽李元佳說過,但是沒有驗證過)。

七、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都沒有問題。

  • 上一篇:敏捷管理專業人士敏捷認證有什麽價值
  • 下一篇:還是。感謝大家對VB編程的幫助。謝謝大家。
  • copyright 2024編程學習大全網