您好,登錄后才能下訂單哦!
MySQL數(shù)據(jù)庫(kù)分支有哪些,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
MySQL是歷史上最受歡迎的免費(fèi)開(kāi)源程序之一。它是成千上萬(wàn)個(gè)網(wǎng)站的數(shù)據(jù)庫(kù)骨干,并且可以將它(和Linux)作為過(guò)去10年里Internet呈指數(shù)級(jí)增長(zhǎng)的一個(gè)有力證明。
那么,如果MySQL真的這么重要,為什么還會(huì)出現(xiàn)越來(lái)越多的核心MySQL修改代碼,然后再自行分發(fā)代碼。在很長(zhǎng)的一段時(shí)間里,在開(kāi)發(fā)人員自己的生產(chǎn)環(huán)境中,沒(méi)有任何值得信任的MySQL分支。但是,這種情況很快就發(fā)生了改變。有幾個(gè)分支引起了許多人的關(guān)注。
為什么要進(jìn)行分支?
為什么需要對(duì)MySQL進(jìn)行分支?這是一個(gè)非常合理的問(wèn)題。成千上萬(wàn)的網(wǎng)站依賴(lài)于MySQL,并且對(duì)許多人來(lái)說(shuō),它似乎是一個(gè)很好的解決方案。但是,通 常就是這樣,適合許多人并不一定適合所有人。這促使一些開(kāi)發(fā)人員想要根據(jù)自己的需要開(kāi)發(fā)出更好的解決方案。還有什么能比將良好的解決方案轉(zhuǎn)換為完美的解決 方案更好的呢?。
下面我們將介紹這些分支尋求改變的更多細(xì)節(jié)。一些分支認(rèn)為MySQL變得太臃腫了,提供了許多用戶(hù)永遠(yuǎn)不會(huì)感興趣的功 能,犧牲了性能的簡(jiǎn)單性。如果人們對(duì)更精簡(jiǎn)的MySQL 4特別滿(mǎn)意,那么為什么還要在MySQL 5中添加額外的復(fù)雜性呢?對(duì)于此分支來(lái)說(shuō),更好的MySQL分支應(yīng)該更簡(jiǎn)單、更快捷,因此提供的功能也較少,但這樣會(huì)使這些功能極其迅速地發(fā)揮作用,并且 牢記目標(biāo)受眾,在本例中,目標(biāo)受眾是高可用性網(wǎng)站。
對(duì)于其他分支來(lái)說(shuō),MySQL并沒(méi)有提供足夠多的新功能,或者是添加新功能的速度太 慢了。他們可能認(rèn)為MySQL沒(méi)有跟上高可用性網(wǎng)站的目標(biāo)市場(chǎng)的發(fā)展形勢(shì),這些網(wǎng)站運(yùn)行于具有大量?jī)?nèi)存的多核處理器之上。正如熟悉MySQL的人所知道的 那樣,MySQL提供了兩種存儲(chǔ)引擎:MyISAM和InnoDB。這一分支認(rèn)為這兩種存儲(chǔ)引擎都沒(méi)有提供他們所需的內(nèi)容,因此他們創(chuàng)建了一種非常適合其 目標(biāo)的新存儲(chǔ)引擎。
此外,一些分支的最高目標(biāo)是成為MySQL的替代產(chǎn)品,在這些產(chǎn)品中,您可以輕松地訪(fǎng)問(wèn)它們的分支,無(wú)需更改任何代 碼。該分支使用與MySQL相同的代碼和界面,因此使過(guò)渡變得非常容易。但是,另一個(gè)分支聲稱(chēng)它與MySQL不兼容,需要更改代碼。每個(gè)分支的成熟度各不 相同,一些分支聲稱(chēng)已經(jīng)準(zhǔn)備就緒可以投入生產(chǎn),而另外一些則聲稱(chēng)目前自己還遠(yuǎn)達(dá)不到這一最高目標(biāo)。
最后,關(guān)于MySQL在Oracle 下將如何發(fā)展仍不太確定。Oracle收購(gòu)了Sun,也收購(gòu)了MySQL,現(xiàn)在Oracle控制MySQL產(chǎn)品本身,并領(lǐng)導(dǎo)開(kāi)發(fā)社區(qū)開(kāi)發(fā)新的成品。由于 Oracle已經(jīng)有了一個(gè)商業(yè)數(shù)據(jù)庫(kù),因此人們擔(dān)心他們可能沒(méi)有足夠的資源來(lái)使MySQL保持其領(lǐng)先地位。因此,許多分支也是這些潛在擔(dān)心所產(chǎn)生的結(jié)果, 他們擔(dān)心MySQL作為領(lǐng)先的免費(fèi)開(kāi)源數(shù)據(jù)庫(kù)提供的功能可能太少、發(fā)布周期太慢并且支持費(fèi)用更昂貴。
XtraDB
XtraDB是一款獨(dú)立的產(chǎn)品,但它仍被認(rèn)為是MySQL的一個(gè)分支。XtraDB實(shí)際上是基于MySQL的數(shù)據(jù)庫(kù)的一個(gè)存儲(chǔ)引擎。XtraDB被認(rèn)為是 已成為MySQL一部分的標(biāo)準(zhǔn)MyISAM和InnoDB的一個(gè)額外存儲(chǔ)引擎。MySQL 4和5使用默認(rèn)的MyISAM存儲(chǔ)引擎安裝每個(gè)表。InnoDB也是一個(gè)相對(duì)較新的存儲(chǔ)引擎選擇,在建立數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)管理員和開(kāi)發(fā)人員可以基于每個(gè)表 選擇存儲(chǔ)引擎類(lèi)型。兩個(gè)存儲(chǔ)引擎的主要區(qū)別是:MyISAM沒(méi)有提供事務(wù)支持,而InnoDB提供了事務(wù)支持。其他差別是許多細(xì)微的性能差別,與 MyISAM相比,InnoDB提供了許多細(xì)微的性能改進(jìn),并且在處理潛在的數(shù)據(jù)丟失時(shí)提供了更高的可靠性和安全性。似乎InnoDB是用于未來(lái)改進(jìn)的更 適合的存儲(chǔ)引擎,因此從版本5.5開(kāi)始,MySQL已將默認(rèn)存儲(chǔ)引擎從MyISAM更改為InnoDB。
基于這些優(yōu)勢(shì),InnoDB存 儲(chǔ)引擎本身拆分出了一個(gè)分支,一個(gè)名為XtraDB的更新的存儲(chǔ)引擎。這個(gè)存儲(chǔ)引擎有多新呢?它3年前由Percona首次發(fā)布,因此它相對(duì)較新。它是專(zhuān) 門(mén)針對(duì)在現(xiàn)代服務(wù)器上運(yùn)行的現(xiàn)代高可用性網(wǎng)站設(shè)計(jì)的。它被設(shè)計(jì)為在具有十幾個(gè)或更多核心和大內(nèi)存(32GB及更多)的服務(wù)器上運(yùn)行。任何公司都可以從服務(wù) 器管理公司購(gòu)買(mǎi)這些類(lèi)型的服務(wù)器,因此應(yīng)將數(shù)據(jù)庫(kù)設(shè)計(jì)為能夠充分利用這些服務(wù)器。
XtraDB分支有另一個(gè)目標(biāo),即成為InnoDB存儲(chǔ)引擎的簡(jiǎn)單替代,這樣用戶(hù)就可以輕松地切換其存儲(chǔ)引擎,無(wú)需更改任何現(xiàn)有的應(yīng)用程序代碼。XtraDB必須能夠向后兼容InnoDB,以提供它們想要添加的所有新功能和改進(jìn)。它們實(shí)現(xiàn)了此目標(biāo)。
XtraDB的速度有多快?我找到的一個(gè)性能測(cè)試表明:與內(nèi)置的MySQL 5.1 InnoDB 引擎相比,它每分鐘可處理2.7倍的事務(wù)。(請(qǐng)參見(jiàn)參考資料)。速度顯然是一個(gè)不可以忽略的因素,在考慮替代產(chǎn)品時(shí)更是如此。
Percona
與內(nèi)置的MySQL存儲(chǔ)引擎相比,XtraDB提供了一些極大的改進(jìn),但它不是一款獨(dú)立產(chǎn)品,也無(wú)法輕松放入現(xiàn)有MySQL安裝。因此,如果您想使用這款新引擎,則必須使用提供它的產(chǎn)品。
Percona Server就是這樣一款產(chǎn)品,由領(lǐng)先的MySQL咨詢(xún)公司Percona發(fā)布。Percona Server是一款獨(dú)立的數(shù)據(jù)庫(kù)產(chǎn)品,為用戶(hù)提供了換出其MySQL安裝并換入Percona Server產(chǎn)品的能力。通過(guò)這樣做,就可以利用XtraDB存儲(chǔ)引擎。Percona Server聲稱(chēng)可以完全與MySQL兼容,因此從理論上講,您無(wú)需更改軟件中的任何代碼。這確實(shí)是一個(gè)很大的優(yōu)勢(shì),適合在您尋找快速性能改進(jìn)時(shí)控制質(zhì) 量。因此,采用Percona Server的一個(gè)很好的理由是,利用XtraDB引擎來(lái)盡可能地減少代碼更改。
此外,他們是XtraDB存儲(chǔ)引擎的原作者。Percona將此代碼用作開(kāi)源代碼,因此您可以在其他產(chǎn)品中找到它,但引擎的最初創(chuàng)建者與編寫(xiě)此產(chǎn)品的是同一個(gè)人,所以您可以隨心所欲地使用此信息。
下面是Percona Server的聲明,該聲明來(lái)自它們自己的網(wǎng)站:
可擴(kuò)展性:處理更多事務(wù);在強(qiáng)大的服務(wù)器上進(jìn)行擴(kuò)展
性能:使用了XtraDB的Percona Server速度非常快
可靠性:避免損壞,提供崩潰安全(crash-safe)復(fù)制
管理:在線(xiàn)備份,在線(xiàn)表格導(dǎo)入/導(dǎo)出
診斷:高級(jí)分析和檢測(cè)
靈活性:可變的頁(yè)面大小,改進(jìn)的緩沖池管理
Percona團(tuán)隊(duì)的最終聲明是“Percona Server是由Oracle發(fā)布的最接近官方MySQL Enterprise發(fā)行版的版本”,因此與其他更改了大量基本核心MySQL代碼的分支有所區(qū)別。Percona Server的一個(gè)缺點(diǎn)是他們自己管理代碼,不接受外部開(kāi)發(fā)人員的貢獻(xiàn),以這種方式確保他們對(duì)產(chǎn)品中所包含功能的控制。
MariaDB
另一款提供了XtraDB存儲(chǔ)引擎的產(chǎn)品是MariaDB產(chǎn)品。它與Percona產(chǎn)品非常類(lèi)似,但是提供了更多底層代碼更改,試圖提供比標(biāo)準(zhǔn) MySQL更多的性能改進(jìn)。MariaDB直接利用來(lái)自Percona的XtraDB引擎,由于它們使用的是完全相同的引擎,因此每次使用存儲(chǔ)引擎時(shí)沒(méi)有 顯著的差別。
此外,MariaDB提供了MySQL提供的標(biāo)準(zhǔn)存儲(chǔ)引擎,即MyISAM和InnoDB。因此,實(shí)際上,可以將它視為 MySQL的擴(kuò)展集,它不僅提供MySQL提供的所有功能,還提供其他功能。MariaDB還聲稱(chēng)自己是MySQL的替代,因此從MySQL切換到 MariaDB時(shí),無(wú)需更改任何基本代碼即可安裝它。
最后可能也是最重要的一點(diǎn)是,MariaDB的主要?jiǎng)?chuàng)建者是Monty Widenius,也是MySQL的初始創(chuàng)建者。Monty成立了一家名為Monty Program的公司來(lái)管理MariaDB的開(kāi)發(fā),這家公司雇傭開(kāi)發(fā)人員來(lái)編寫(xiě)和改進(jìn)MariaDB產(chǎn)品。這既是一件好事,也是一件壞事:有利的一面在于 他們是Maria功能和bug修復(fù)的佼佼者,但公司不是以贏利為目的,而是由產(chǎn)品驅(qū)動(dòng)的,這可能會(huì)帶來(lái)問(wèn)題,因?yàn)闆](méi)有贏利的公司不一定能長(zhǎng)久維持下去。
Drizzle
本文介紹的最后一款產(chǎn)品是Drizzle。與之前介紹的兩款產(chǎn)品不同,Drizzle與MySQL有很大差別,甚至聲稱(chēng)它們不是MySQL的替代產(chǎn)品。 他們期望對(duì)MySQL進(jìn)行一些重大更改,想要提供一種出色的解決方案來(lái)解決高可用性問(wèn)題,即使這意味著要更改我們已經(jīng)習(xí)慣了的MySQL的各個(gè)方面。
在公司的FAQ頁(yè)面,閱讀其中提供的問(wèn)題時(shí)就會(huì)發(fā)現(xiàn),Drizzle進(jìn)一步地強(qiáng)調(diào)了其基本目標(biāo)。他們不滿(mǎn)意MySQL 4.1版本之后對(duì)MySQL代碼進(jìn)行的一些更改,聲稱(chēng)許多開(kāi)發(fā)人員不想花費(fèi)額外的錢(qián)。他們承認(rèn)其產(chǎn)品與SQL關(guān)系數(shù)據(jù)庫(kù)甚至是不兼容的。這確實(shí)與 MySQL有很大的不同。
與習(xí)慣的MySQL有如此大的變化,我們?yōu)槭裁催€要考慮這款產(chǎn)品呢?準(zhǔn)確地講,原因與上面的是相同 的,Drizzle是MySQL引擎的一次重大修改,它清除了一些表現(xiàn)不佳和不必要的功能,將很多代碼重寫(xiě),對(duì)它們進(jìn)行了優(yōu)化,甚至將所用語(yǔ)言從C換成了 C++,以獲得所需的代碼。此外,Drizzle并沒(méi)有就此結(jié)束修改,該產(chǎn)品在設(shè)計(jì)時(shí)就考慮到了其目標(biāo)市場(chǎng),即具有大量?jī)?nèi)容的多核服務(wù)器、運(yùn)行Linux 的64位機(jī)器、云計(jì)算中使用的服務(wù)器、托管網(wǎng)站的服務(wù)器和每分鐘接收數(shù)以萬(wàn)計(jì)點(diǎn)擊率的服務(wù)器。這是一個(gè)相當(dāng)具體的市場(chǎng)。它太具體了嗎?請(qǐng)記住這些類(lèi)型的公 司目前在其數(shù)據(jù)庫(kù)方面投入的資金,如果他們可以安裝Drizzle而不是MySQL,那么他們的服務(wù)器成本將削減一半,可以節(jié)省很多錢(qián)!
那么,是不是所有人都應(yīng)該使用Drizzle呢?等等,正如Drizzle反復(fù)指出的那樣,它與MySQL不兼容。因此,如果您現(xiàn)在使用的是MySQL平臺(tái),那么需要重寫(xiě)大量代碼,才能使Drizzle在您的環(huán)境中正常工作。
盡管需要額外的工作才能讓它運(yùn)行,但它并不像Percona或MariaDB那樣快速且易于使用。我之所以介紹Drizzle,是因?yàn)楸M管目前它可能不 是您的選擇,但幾年之后,它很可能會(huì)成為一些人的選擇。因?yàn)楸疚牡哪繕?biāo)是提高您對(duì)未來(lái)使用的工具的認(rèn)識(shí),所以這是向您介紹此產(chǎn)品的好機(jī)會(huì)。許多領(lǐng)先的DB 專(zhuān)家相信Drizzle將成為未來(lái)5年內(nèi)高可用性數(shù)據(jù)庫(kù)安裝的選擇。
Drizzle是完全開(kāi)源的產(chǎn)品,公開(kāi)接受開(kāi)發(fā)人員的貢獻(xiàn)。它不像MariaDB那樣有支持其開(kāi)發(fā)的公司,也不像Percona那樣有大量外部開(kāi)發(fā)人員為其提供貢獻(xiàn)。Drizzle有很好的成長(zhǎng)空間并會(huì)提供一些新功能,但可能需要重寫(xiě)大部分MySQL代碼。
對(duì)比圖
下面是本文中介紹的三款MySQL分支產(chǎn)品的概述。
結(jié)束語(yǔ)
本文介紹了MySQL產(chǎn)品的三個(gè)新分支,旨在解決它們使用MySQL時(shí)遇到的一些問(wèn)題。這三個(gè)分支都是免費(fèi)的開(kāi)源產(chǎn)品。在使用時(shí),您需要根據(jù)MySQL 已提供的功能來(lái)權(quán)衡它們的優(yōu)缺點(diǎn)。我相信,對(duì)于閱讀本文的大多數(shù)人來(lái)說(shuō),MySQL將仍然是滿(mǎn)足數(shù)據(jù)庫(kù)需求的首選。我很懷疑閱讀本文的大多數(shù)讀者都是每小 時(shí)擁有1,000,000點(diǎn)擊率的網(wǎng)站的所有者。我想再次強(qiáng)調(diào)的是,MySQL仍然是一款非常出色的產(chǎn)品,是一個(gè)非常適合大多數(shù)使用情況的數(shù)據(jù)庫(kù)。
但是,對(duì)于那些認(rèn)為自己的網(wǎng)站需要比目前MySQL所能提供的更高的可用性、可擴(kuò)展性和性能的人來(lái)說(shuō),這3款產(chǎn)品中的任意一款產(chǎn)品都可能為您提供所需的 解決方案。更進(jìn)一步地說(shuō),如果您認(rèn)為您的網(wǎng)站將成為能獲得很多利潤(rùn)的網(wǎng)站,那么可以考慮使用三款產(chǎn)品中的一款產(chǎn)品,在問(wèn)題出現(xiàn)之前解決它們。
最后,出現(xiàn)這些MySQL分支的根本原因是:一些創(chuàng)作者想更改MySQL的一些基本功能,因?yàn)樗麄儫o(wú)法等到MySQL自己完成這些工作。此 外,Oracle的現(xiàn)狀威脅到了MySQL的未來(lái),并且許多開(kāi)發(fā)人員(包括MySQL的原始開(kāi)發(fā)人員)都擔(dān)心該產(chǎn)品的未來(lái),他們還擔(dān)心Oracle是否會(huì) 投入精力保持該產(chǎn)品的領(lǐng)先數(shù)據(jù)庫(kù)的地位。這些擔(dān)憂(yōu)在我看來(lái)都是合理的,因此在我們邁向未來(lái)時(shí)要牢記這些產(chǎn)品。
看完上述內(nèi)容,你們掌握MySQL數(shù)據(jù)庫(kù)分支有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。