W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
postgresql和mysql都是免費(fèi)且功能強(qiáng)大的開源數(shù)據(jù)庫,很多用戶面對(duì)這兩個(gè)庫都會(huì)有一個(gè)問題,那就是哪一個(gè)才是最好的開源數(shù)據(jù)庫,MySQL還是PostgreSQL呢?該選擇哪一個(gè)開源數(shù)據(jù)庫呢?
一.PostgreSQL相對(duì)于MySQL的優(yōu)勢
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)勢:
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)化器較簡單,系統(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ū)個(gè)數(shù)達(dá)到上千上萬后的處理性能差異較大。
5、MySQL的存儲(chǔ)引擎插件化機(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ù)邏輯相對(duì)簡單、對(duì)數(shù)據(jù)可靠性要求比較低的互聯(lián)網(wǎng)場景(比如google、facebook、alibaba)。
相關(guān)閱讀:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: