postgresql和mysql哪個(gè)好

2019-10-26 16:28 更新

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


postgresql和mysql哪個(gè)好


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

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

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

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

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

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

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


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

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

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

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

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

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


三、結(jié)論

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

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


相關(guān)閱讀:

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

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)