W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
postgresql和mysql都是免費(fèi)且功能強(qiáng)大的開源數(shù)據(jù)庫,很多用戶面對這兩個庫都會有一個問題,那就是哪一個才是最好的開源數(shù)據(jù)庫,MySQL還是PostgreSQL呢?該選擇哪一個開源數(shù)據(jù)庫呢?
一.PostgreSQL相對于MySQL的優(yōu)勢
1、在SQL的標(biāo)準(zhǔn)實(shí)現(xiàn)上要比MySQL完善,而且功能實(shí)現(xiàn)比較嚴(yán)謹(jǐn);
2、存儲過程的功能支持要比MySQL好,具備本地緩存執(zhí)行計劃的能力;
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è)計存在約束;
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)閱讀:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: