PostgreSQL 與 MySQL 相比,優勢何在?

時間 2021-05-06 22:07:31

1樓:

pg除了不能針對單個資料庫進行備份恢復,複製,即時點恢復(這給日常維護帶來了很大的麻煩),其它完美。我乙個伺服器上都有幾十上百個資料庫。

開發爽,維護不爽,sql server維護起來真的很方便

mysql應該跟access,sqlite比,postgresql人家對標的明明是oracle

2樓:小賊

這篇文章對比了mysql8,postgreSql10http://

blog.dumper.io/showdown-mysql-8-vs-postgresql-10/

3樓:「已登出」

優勢就是有很多資料庫的新特性,很多學術的都會用postgresql,像我們在新南上資料庫課就是這個資料庫,課本其實直接拿它的官網文件看就好了。。mysql說句實話更穩定點,有時候並不是新就是最好的。。企業級應用其實更希望穩定。。。

但是在雪梨這邊你會發覺也有很多公司用postgresql。。。

4樓:蘇維

看了好幾個答案,吐槽mysql的居多。但是psql在大多數簡單場景下效能都明顯比mysql差。

工程實踐表明越是高負載環境越要把資料庫使用場景變簡單,最好的結果就是所有查詢語句除了where沒其他東西。

這就導致乙個結果,國內外大規模使用開源資料庫的場景裡差不多見不到psql,大多數都是mysql及其變種。

5樓:

pgsql 已經可以支援把sql 編譯為bytecode,通過llvm jit技術轉化為native code 執行,對複雜查詢加速效果明顯,普通點查詢效果一般。當然有了llvm 的黑科技還很方便做vector 加速。這些新特性在olap 領域相當重要。

oracle 早就支援把儲存過程編譯為bytecode 了,mysql 還在直譯器時代。

6樓:lyp

如果明年redhat發布這樣乙個新聞,那postgresql的春天才會到來:╮(╯▽╰)╭

gt;>> RHEL8 中將使用 PostgreSQL 替代 MariaDB.

然後接下來的問題就是如何看待Redhat挖了乙個大坑給Oracle跳:

1) 跟進rhel,那麼Oralce & mysql 就有被Oralce Linux自己顛覆自己的風險;

2) 不跟進,那麼Oralce Linux跟rhel的差異就會越來越大,無法搶rhel的客戶。

贊一下,redhat下得一手好棋。O(∩_∩)O哈哈~

Oracle反制: 放棄Oracle Linux,全力支援並收購ubuntu(預設攜帶mysql服務)。

7樓:破產碼農

PostgreSQL相對於MySQL優勢在於:沒什麼真正大規模網際網路生產環境的應用,偽專家們可以隨便吹。說PG比MySQL坑少的,請用資料和事實說話。

可以看看中國資料庫排行榜和DB-Engine,PG沒什麼人用,談何優勢可言。馬克思經濟學說過沒有使用價值就沒有價值:

中國資料庫排行榜 · 2023年6月 MySQL終超Oracle!!!

DB-Engines Ranking

8樓:Bundy Trace

如果只看國內求職情況,PG的崗位比MySQL少的多。選型還是從社群發展情況考慮吧。用一種小眾技術,你要有被坑並且爬不起來的心理準備。

9樓:飛鳥

對我來說:

1、PostgreSQL有CBO,做表的連線查詢時優化器可以用hash join。MySQL迄今還沒有這。也就是說連線效能差了一大截。(印象中ORACLE 90年代就有CBO了)

2、基於MySql 的開源著名應用太多。這一條的權重是無窮大。

10樓:

以下從自己使用的角度,梳理的一些PostgreSQL 相比MySQL的優點

MySQL的Join操作的效能非常的差,只支援Nest Join,所以一旦資料量大,效能就非常的差。PostgreSQL除了支援nest join外,還支援hash join和 sort merge join

PostgreSQL支援正規表示式查詢,MySQL不支援

PostgreSQL支援將json資料儲存為jsonb格式,可以在jsonb上建立GIN索引,打造成關係型資料和非關係型資料庫的綜合體

PostgreSQL還支援表繼承,某些場景用了真的是非常的方便。

POSTGIS元件,可以方便的實現基於地理位置的服務。

支援cte,row_number等,在寫複雜一些的SQL是相對容易些。

另外,很多效能問題主要是索引問題導致的,和資料庫的關係不是非常的大

11樓:eechen

MySQL如果只有MyISAM乙個引擎的話,那你們黑真的也有道理,但問題是InnoDB現在已經是MySQL預設的引擎,而且這個引擎綜合能力很強,能用好這個引擎其實就已經能解決大多數需要資料庫的業務邏輯.在MySQL先占領市場的前提下,大多數MySQL使用者都是不願意冒風險切換到另乙個資料庫的,除非PostgreSQL真的是那個場景上是萬金油.

在資料量極大的時候(大於1億條的級別),InnoDB的B+樹效能的缺陷會暴露,這時MySQL的DBA可能會轉向TokuDB這個第三方開源的MySQL引擎來處理這些大資料.也就是說,MySQL的小使用者,資料量估計連千萬都不到,他們是不可能沒事折騰換資料庫的.MySQL的大使用者,他們熟悉MySQL,他們也更願意使用MySQL,既然TokuDB/Infobright這些第三方引擎能滿足他們的某些需求如大資料儲存和分析,他們也沒有換資料庫的動力.

除非PostgreSQL在他們需求上對MySQL有絕對壓倒性優勢.

PostgreSQL真那麼強,其實完全可以像TokuTek(已被Percona收購)那樣,開發乙個第三方MySQL儲存引擎在MySQL裡挑戰InnoDB嘛,至少TokuDB(分形樹索引)在某些方面證明了自己比InnoDB(B+樹索引)優秀,比如隨機插入效能,資料壓縮效果,大資料儲存和分析.

12樓:ka ka

mysql執行速度太慢了,還趕不上ORALCE目前的效率。不知道說mysql快的是否是90年代的人。

PostgreSQL速度明顯快幾個數量級。

沒什麼比較價值的,多看其他開發者的書,比如資料分析方面的,你會看到各類資料庫的比較

至於使用者數, windows和IE目前依然是最流行的工具。你敢說這2個工具最好???

13樓:韓翔

開始對Windows支援不好,配置複雜,效能低下,後來雖然好了,但是市場沒有了。另外,當年PHP的流行對MySQL的普及有很大幫助。現在,MySQL用的人多,各種解決方案層出不窮,自然就有優勢。

比如,mycat,對MySQL的優化遠超過PostgreSQL。不過在複雜場景的使用下,PostgreSQL優勢還是有的。我現在在做企業生產雲平台,開始也是MySQL,最近終於下決心換掉了,改了PostgreSQL。

畢竟還沒有到必須要幾千個節點才能保證運營的地步,MySQL優勢不那麼明顯。而且系統對資料安全要求高,資料結構複雜。比如,對普通應用,一輛車就是有限的記錄,對我們,一輛車是包含很多級物料的樹狀結構,也代表車從無到有再到消費的過程。

如果完整表述,這個過程就是乙個巨大的圖,MySQL真的力不從心。最終,在沒有精力優化MySQL的情況下,選了PostgreSQL。

14樓:朽木雕花

我們做專案除了oracle,db2,都給客戶推薦postgresql。

首先用起來省心,其次,安裝維護什麼的也簡單了很多。

比如從原始碼開始安裝,mysql得搞小半天。postgresql也就10分鐘搞定了

15樓:依雲

一路坑坑窪窪地走來 MySQL 之九奇坑 ,MySQL 5.7 也支援 JSON 了!然而——

當我從 Arch Linux 官方源裡安裝了 MySQL 5.7( Percona)之後,提示我設定了乙個臨時密碼,在日誌裡。於是啟動 MySQL,並使用臨時密碼登入。

然後發現什麼也做不了,除了改密碼。於是改密碼。按慣例生成乙個隨機串作為密碼,然而 MySQL 告訴我這密碼強度不夠

於是我嘗試檢視 MySQL 預設對密碼的要求,但是!前邊說了,除了改密碼,什麼也做不了!這包括檢視它能接受什麼樣的密碼!

…………

抱歉,MySQL,我沒有心情看你的原始碼。pacman -S postgresql,然後發現世界如此美好。

對了,MySQL 改表結構得全表複製一次!

說到效能,MySQL rollback 很慢的哦!

非常成功的應用案例:CloudFlare 啊!!他們部落格(https://

)除了講他們的產品、講網際網路安全,也講過好幾次 PostgreSQL 的。

當然還有華為、Reddit、Instagram、Disqus 之類的,維基百科上都可以查到的。

16樓:知了

一、PG相對於MySQL的優勢:

1、在SQL的標準實現上要比MySQL完善,而且功能實現比較嚴謹;

2、儲存過程的功能支援要比MySQL好,具備本地快取執行計畫的能力;

3、對錶連線支援較完整,優化器的功能較完整,支援的索引型別很多,複雜查詢能力較強;

4、PG主表採用堆表存放,MySQL採用索引組織表,能夠支援比MySQL更大的資料量。

5、PG的主備複製屬於物理複製,相對於MySQL基於binlog的邏輯複製,資料的一致性更加可靠,複製效能更高,對主機效能的影響也更小。

6、MySQL的儲存引擎外掛程式化機制,存在鎖機制複雜影響併發的問題,而PG不存在。

二、MySQL相對於PG的優勢:

1、innodb的基於回滾段實現的MVCC機制,相對PG新老資料一起存放的基於XID的MVCC機制,是佔優的。新老資料一起存放,需要定時觸發VACUUM,會帶來多餘的IO和資料庫物件加鎖開銷,引起資料庫整體的併發能力下降。而且VACUUM清理不及時,還可能會引發資料膨脹;

2、MySQL採用索引組織表,這種儲存方式非常適合基於主鍵匹配的查詢、刪改操作,但是對錶結構設計存在約束;

3、MySQL的優化器較簡單,系統表、運算子、資料型別的實現都很精簡,非常適合簡單的查詢操作;

4、MySQL分割槽表的實現要優於PG的基於繼承表的分割槽實現,主要體現在分割槽個數達到上千上萬後的處理效能差異較大。

5、MySQL的儲存引擎外掛程式化機制,使得它的應用場景更加廣泛,比如除了innodb適合事務處理場景外,myisam適合靜態資料的查詢場景。

三、總體上來說,開源資料庫都不是很完善,商業資料庫oracle在架構和功能方面都還是完善很多的。從應用場景來說,PG更加適合嚴格的企業應用場景(比如金融、電信、ERP、CRM),而MySQL更加適合業務邏輯相對簡單、資料可靠性要求較低的網際網路場景(比如google、facebook、alibaba)。

使用memcache是否應該關閉mysql的cache快取?

hasaki MySQL的老版本中確實有快取,這樣一模一樣的請求過來,直接查詢快取就行了。但是,MySQL伺服器並沒有人聰明,如果兩個查詢請求在任何字元上的不同 例如 空格 注釋 大小寫 都會導致快取不會命中。另外,如果查詢請求中包含某些系統函式 使用者自定義變數和函式 一些系統表,如 mysql ...

PostgreSQL 有哪些經典入門書籍?

以個人的經驗,PostgreSQL與其他資料庫是相同的。建議的流程 1 學習掌握SQL SQL權威指南 如果沒有系統的學習過,非常建議通讀一遍,其他關於SQL的書籍都不推薦。2 學習PostgreSQL特性PostgreSQL 9.6.2 Documentation參照目錄,把自己不了解的內容配合搜...

MySQL 和 PostgreSQL 相比,對 JSON 的支援如何?

三公尺之內 偶然一次開始了解postgres,相見恨晚,特別是json支援這一塊。鼓足勇氣就把目前在做的和已經上線的專案資料庫全部換成了pg,沒想到還異常順利。 小烏龜 說白了兩點 pg比mysql多支援乙個預索引的jsonb格式 通過格式優化查詢,並非新增索引 使得對json的操作比pg本身的js...