postgresql和mysql哪個好

2019-10-26 16:28 更新

postgresql和mysql都是免費(fèi)且功能強(qiáng)大的開源數(shù)據(jù)庫,很多用戶面對這兩個庫都會有一個問題,那就是哪一個才是最好的開源數(shù)據(jù)庫,MySQL還是PostgreSQL呢?該選擇哪一個開源數(shù)據(jù)庫呢?


postgresql和mysql哪個好


一.PostgreSQL相對于MySQL的優(yōu)勢

1、在SQL的標(biāo)準(zhǔn)實(shí)現(xiàn)上要比MySQL完善,而且功能實(shí)現(xiàn)比較嚴(yán)謹(jǐn);

2、存儲過程的功能支持要比MySQL好,具備本地緩存執(zhí)行計(jì)劃的能力;

3、對表連接支持較完整,優(yōu)化器的功能較完整,支持的索引類型很多,復(fù)雜查詢能力較強(qiáng);

4、postgresql主表采用堆表存放,MySQL采用索引組織表,能夠支持比MySQL更大的數(shù)據(jù)量。

5、postgresql的主備復(fù)制屬于物理復(fù)制,相對于MySQL基于binlog的邏輯復(fù)制,數(shù)據(jù)的一致性更加可靠,復(fù)制性能更高,對主機(jī)性能的影響也更小。

6、MySQL的存儲引擎插件化機(jī)制,存在鎖機(jī)制復(fù)雜影響并發(fā)的問題,而postgresql不存在。


二、MySQL相對于PostgreSQL的優(yōu)勢:

1、innodb的基于回滾段實(shí)現(xiàn)的MVCC機(jī)制,相對PG新老數(shù)據(jù)一起存放的基于XID的MVCC機(jī)制,是占優(yōu)的。新老數(shù)據(jù)一起存放,需要定時觸發(fā)VACUUM,會帶來多余的IO和數(shù)據(jù)庫對象加鎖開銷,引起數(shù)據(jù)庫整體的并發(fā)能力下降。而且VACUUM清理不及時,還可能會引發(fā)數(shù)據(jù)膨脹;

2、MySQL采用索引組織表,這種存儲方式非常適合基于主鍵匹配的查詢、刪改操作,但是對表結(jié)構(gòu)設(shè)計(jì)存在約束;

3、MySQL的優(yōu)化器較簡單,系統(tǒng)表、運(yùn)算符、數(shù)據(jù)類型的實(shí)現(xiàn)都很精簡,非常適合簡單的查詢操作;

4、MySQL分區(qū)表的實(shí)現(xiàn)要優(yōu)于PG的基于繼承表的分區(qū)實(shí)現(xiàn),主要體現(xiàn)在分區(qū)個數(shù)達(dá)到上千上萬后的處理性能差異較大。

5、MySQL的存儲引擎插件化機(jī)制,使得它的應(yīng)用場景更加廣泛,比如除了innodb適合事務(wù)處理場景外,myisam適合靜態(tài)數(shù)據(jù)的查詢場景。


三、結(jié)論

總的來說,開源數(shù)據(jù)庫都還不是很完善,和這兩者相比,商業(yè)數(shù)據(jù)庫oracle無論在架構(gòu)還是功能方面都要完善很多。

postgresql和mysql相比,postgresql更加適合嚴(yán)格的企業(yè)應(yīng)用場景(比如金融、電信、ERP、CRM),而MySQL則是更加適合業(yè)務(wù)邏輯相對簡單、對數(shù)據(jù)可靠性要求比較低的互聯(lián)網(wǎng)場景(比如google、facebook、alibaba)。


相關(guān)閱讀:

數(shù)據(jù)庫入門級開發(fā)教程

MySQL數(shù)據(jù)庫筆記


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號