mysql 回滚段_MySQL和PostgreSQL比较
1、MySQL相對(duì)來(lái)說(shuō)比較年輕,首度出現(xiàn)在1994年。它聲稱(chēng)自己是最流行的開(kāi)源數(shù)據(jù)庫(kù)。MySQL就是LAMP(用于Web開(kāi)發(fā)的軟件包,包括 Linux、Apache及Perl/PHP/Python)中的M。構(gòu)建在LAMP棧之上的大多數(shù)應(yīng)用都會(huì)使用MySQL,包括那些知名的應(yīng)用,如 WordPress、Drupal、Zend及phpBB等。
一開(kāi)始,MySQL的設(shè)計(jì)目標(biāo)是成為一個(gè)快速的Web服務(wù)器后端,使用快速的索引序列訪(fǎng)問(wèn)方法(ISAM),不支持ACID。經(jīng)過(guò)早期快速的發(fā)展之 后,MySQL開(kāi)始支持更多的存儲(chǔ)引擎,并通過(guò)InnoDB引擎實(shí)現(xiàn)了ACID。MySQL還支持其他存儲(chǔ)引擎,提供了臨時(shí)表的功能(使用MEMORY存 儲(chǔ)引擎),通過(guò)MyISAM引擎實(shí)現(xiàn)了高速讀的數(shù)據(jù)庫(kù),此外還有其他的核心存儲(chǔ)引擎與第三方引擎。
2、PostgreSQL標(biāo)榜自己是世界上最先進(jìn)的開(kāi)源數(shù)據(jù)庫(kù)。PostgreSQL的一些粉絲說(shuō)它能與Oracle相媲美,而且沒(méi)有那么昂貴的價(jià)格和傲慢的客服。它擁有很長(zhǎng)的歷史,最初是1985年在加利福尼亞大學(xué)伯克利分校開(kāi)發(fā)的,作為Ingres數(shù)據(jù)庫(kù)的后繼。
PostgreSQL是完全由社區(qū)驅(qū)動(dòng)的開(kāi)源項(xiàng)目,由全世界超過(guò)1000名貢獻(xiàn)者所維護(hù)。它提供了單個(gè)完整功能的版本,而不像MySQL那樣提供了 多個(gè)不同的社區(qū)版、商業(yè)版與企業(yè)版。PostgreSQL基于自由的BSD/MIT許可,組織可以使用、復(fù)制、修改和重新分發(fā)代碼,只需要提供一個(gè)版權(quán)聲 明即可。
雖然有不同的歷史、引擎與工具,不過(guò)并沒(méi)有明確的參考能夠表明這兩個(gè)數(shù)據(jù)庫(kù)哪一個(gè)能夠適用于所有情況。很多組織喜歡使用PostgreSQL,因?yàn)?它的可靠性好,在保護(hù)數(shù)據(jù)方面很擅長(zhǎng),而且是個(gè)社區(qū)項(xiàng)目,不會(huì)陷入廠(chǎng)商的牢籠之中。MySQL更加靈活,提供了更多選項(xiàng)來(lái)針對(duì)不同的任務(wù)進(jìn)行裁剪。很多時(shí) 候,對(duì)于一個(gè)組織來(lái)說(shuō),對(duì)某個(gè)軟件使用的熟練程度要比特性上的原因更重要。
一、PG相對(duì)于MySQL的優(yōu)勢(shì):
1、在SQL的標(biāo)準(zhǔn)實(shí)現(xiàn)上要比MySQL完善,而且功能實(shí)現(xiàn)比較嚴(yán)謹(jǐn);
2、存儲(chǔ)過(guò)程的功能支持要比MySQL好,具備本地緩存執(zhí)行計(jì)劃的能力;
3、對(duì)表連接支持較完整,優(yōu)化器的功能較完整,支持的索引類(lèi)型很多,復(fù)雜查詢(xún)能力較強(qiáng);
4、PG主表采用堆表存放,MySQL采用索引組織表,能夠支持比MySQL更大的數(shù)據(jù)量。
5、PG的主備復(fù)制屬于物理復(fù)制,相對(duì)于MySQL基于binlog的邏輯復(fù)制,數(shù)據(jù)的一致性更加可靠,復(fù)制性能更高,對(duì)主機(jī)性能的影響也更小。
6、MySQL的存儲(chǔ)引擎插件化機(jī)制,存在鎖機(jī)制復(fù)雜影響并發(fā)的問(wèn)題,而PG不存在。
二、MySQL相對(duì)于PG的優(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ì)帶來(lái)多余的IO和數(shù)據(jù)庫(kù)對(duì)象加鎖開(kāi)銷(xiāo),引起數(shù)據(jù)庫(kù)整體的并發(fā)能力下降。而且VACUUM清理不及時(shí),還可能會(huì)引發(fā)數(shù)據(jù)膨脹;
2、MySQL采用索引組織表,這種存儲(chǔ)方式非常適合基于主鍵匹配的查詢(xún)、刪改操作,但是對(duì)表結(jié)構(gòu)設(shè)計(jì)存在約束;
3、MySQL的優(yōu)化器較簡(jiǎn)單,系統(tǒng)表、運(yùn)算符、數(shù)據(jù)類(lèi)型的實(shí)現(xiàn)都很精簡(jiǎn),非常適合簡(jiǎn)單的查詢(xún)操作;
4、MySQL分區(qū)表的實(shí)現(xiàn)要優(yōu)于PG的基于繼承表的分區(qū)實(shí)現(xiàn),主要體現(xiàn)在分區(qū)個(gè)數(shù)達(dá)到上千上萬(wàn)后的處理性能差異較大。
5、MySQL的存儲(chǔ)引擎插件化機(jī)制,使得它的應(yīng)用場(chǎng)景更加廣泛,比如除了innodb適合事務(wù)處理場(chǎng)景外,myisam適合靜態(tài)數(shù)據(jù)的查詢(xún)場(chǎng)景。
三、總體上來(lái)說(shuō),開(kāi)源數(shù)據(jù)庫(kù)都不是很完善,商業(yè)數(shù)據(jù)庫(kù)oracle在架構(gòu)和功能方面都還是完善很多的。從應(yīng)用場(chǎng)景來(lái)說(shuō),PG更加適合嚴(yán)格的企業(yè)應(yīng)用場(chǎng)景(比如金融、電信、ERP、CRM),而MySQL更加適合業(yè)務(wù)邏輯相對(duì)簡(jiǎn)單、數(shù)據(jù)可靠性要求較低的互聯(lián)網(wǎng)場(chǎng)景(比如google、facebook、alibaba)。
mysql支持存儲(chǔ)過(guò)程
mysql支持半同步復(fù)制,google的補(bǔ)丁
innodb的mvcc基本可以做到事務(wù)無(wú)鎖
總結(jié)
以上是生活随笔為你收集整理的mysql 回滚段_MySQL和PostgreSQL比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php atlas,apache atl
- 下一篇: mysql 数据库访问层_MYSQL数据