国语精品91自产拍在线观看二区_色偷偷五月天_天天射夜夜爽_99久久免费国产特黄_1717国产精品久久

超越MySQL對流行數(shù)據(jù)庫進(jìn)行分支知識整理

  • 相關(guān)推薦

超越MySQL對流行數(shù)據(jù)庫進(jìn)行分支知識整理

  簡 介

超越MySQL對流行數(shù)據(jù)庫進(jìn)行分支知識整理

  MySQL 是歷史上最受歡迎的免費(fèi)開源程序之一。它是成千上萬個網(wǎng)站的數(shù)據(jù)庫骨干,并且可以將它(和 Linux)作為過去 10 年里 Internet 呈指數(shù)級增長的一個有力證明。

  那么,如果 MySQL 真的這么重要,為什么還會出現(xiàn)越來越多的核心 MySQL 產(chǎn)品的高端衍生產(chǎn)品?這是因為 MySQL 是免費(fèi)的開源應(yīng)用程序,所以開發(fā)人員總是可以獲得其代碼,并按照自己的想法修改代碼,然后再自行分發(fā)代碼。在很長的一段時間里,在開發(fā)人員自己的生產(chǎn)環(huán)境 中,沒有任何值得信任的 MySQL 分支。但是,這種情況很快就發(fā)生了改變。有幾個分支引起了許多人的關(guān)注。

  本文將討論受人們關(guān)注的三個流行 MySQL 分支:Drizzle、MariaDB 和 Percona Server(包括 XtraDB 引擎)。本文將簡要介紹每個分支出現(xiàn)的原因及其目標(biāo),以及是否可在您自己的生產(chǎn)環(huán)境中使用它們。在本文結(jié)束時,您應(yīng)該能夠回答 “對我的環(huán)境來說,這些 MySQL 分支產(chǎn)品是否是一個好的解決方案?” 這樣的問題。

  為什么要進(jìn)行分支?

  為什么需要對 MySQL 進(jìn)行分支?這是一個非常合理的問題。成千上萬的網(wǎng)站依賴于 MySQL,并且對許多人來說,它似乎是一個很好的解決方案。但是,通常就是這樣,適合許多人并不一定適合所有 人。這促使一些開發(fā)人員想要根據(jù)自己的需要開發(fā)出更好的解決方案。還有什么能比將良好的解決方案轉(zhuǎn)換為完美的解決方案更好的呢?。

  下面我們將介紹這些分支尋求改變的更多細(xì)節(jié)。一些分支認(rèn)為 MySQL 變得太臃腫 了,提供了許多用戶永遠(yuǎn)不會感興趣的功能,犧牲了性能的簡單性。如果人們對更精簡的 MySQL 4 特別滿意,那么為什么還要在 MySQL 5 中添加額外的復(fù)雜性呢?對于此分支來說,更好的 MySQL 分支應(yīng)該更簡單、更快捷,因此提供的功能也較少,但這樣會使這些功能極其迅速地發(fā)揮作用,并且牢記目標(biāo)受眾,在本例中,目標(biāo)受眾是高可用性網(wǎng)站。

  對于其他分支來說,MySQL 并沒有提供足夠多的 新功能,或者是添加新功能的速度太慢了。他們可能認(rèn)為 MySQL 沒有跟上高可用性網(wǎng)站的目標(biāo)市場的發(fā)展形勢,這些網(wǎng)站運(yùn)行于具有大量內(nèi)存的多核處理器之上。正如熟悉 MySQL 的人所知道的那樣,MySQL 提供了兩種存儲引擎:MyISAM 和 InnoDB。這一分支認(rèn)為這兩種存儲引擎都沒有提供他們所需的內(nèi)容,因此他們創(chuàng)建了一種非常適合其目標(biāo)的新存儲引擎。

  此外,一些分支的最高目標(biāo)是成為 MySQL 的替代產(chǎn)品,在這些產(chǎn)品中,您可以輕松地訪問它們的分支,無需更改任何代碼。該分支使用與 MySQL 相同的代碼和界面,因此使過渡變得非常容易。但是,另一個分支聲稱它與 MySQL 不兼容,需要更改代碼。每個分支的成熟度各不相同,一些分支聲稱已經(jīng)準(zhǔn)備就緒可以投入生產(chǎn),而另外一些則聲稱目前自己還遠(yuǎn)達(dá)不到這一最高目標(biāo)。

  最后,關(guān)于 MySQL 在 Oracle 下將如何發(fā)展仍不太確定。Oracle 收購了 Sun,也收購了 MySQL,現(xiàn)在 Oracle 控制 MySQL 產(chǎn)品本身,并領(lǐng)導(dǎo)開發(fā)社區(qū)開發(fā)新的成品。由于 Oracle 已經(jīng)有了一個商業(yè)數(shù)據(jù)庫,因此人們擔(dān)心他們可能沒有足夠的資源來使 MySQL 保持其領(lǐng)先地位。因此,許多分支也是這些潛在擔(dān)心所產(chǎn)生的結(jié)果,他們擔(dān)心 MySQL 作為領(lǐng)先的免費(fèi)開源數(shù)據(jù)庫提供的功能可能太少、發(fā)布周期太慢并且支持費(fèi)用更昂貴。

  XtraDB

  XtraDB 是一款獨(dú)立的產(chǎn)品,但它仍被認(rèn)為是 MySQL 的一個分支。XtraDB 實(shí)際上是基于 MySQL 的數(shù)據(jù)庫的一個存儲引擎。XtraDB 被認(rèn)為是已成為 MySQL 一部分的標(biāo)準(zhǔn) MyISAM 和 InnoDB 的一個額外存儲引擎。MySQL 4 和 5 使用默認(rèn)的 MyISAM 存儲引擎安裝每個表。InnoDB 也是一個相對較新的存儲引擎選擇,在建立數(shù)據(jù)庫時,數(shù)據(jù)庫管理員和開發(fā)人員可以基于每個表選擇存儲引擎類型。兩個存儲引擎的主要區(qū)別是:MyISAM 沒有提供事務(wù)支持,而 InnoDB 提供了事務(wù)支持。其他差別是許多細(xì)微的性能差別,與 MyISAM 相比,InnoDB 提供了許多細(xì)微的性能改進(jìn),并且在處理潛在的數(shù)據(jù)丟失時提供了更高的可靠性和安全性。似乎 InnoDB 是用于未來改進(jìn)的更適合的存儲引擎,因此從版本 5.5 開始,MySQL 已將默認(rèn)存儲引擎從 MyISAM 更改為 InnoDB。

  基于這些優(yōu)勢,InnoDB 存儲引擎本身拆分出了一個分支,一個名為 XtraDB 的更新的存儲引擎。這個存儲引擎有多新呢?它 3 年前由 Percona 首次發(fā)布,因此它相對較新。它是專門針對在現(xiàn)代服務(wù)器上運(yùn)行的現(xiàn)代高可用性網(wǎng)站設(shè)計的。它被設(shè)計為在具有十幾個或更多核心和大內(nèi)存(32 GB及更多)的服務(wù)器上運(yùn)行。任何公司都可以從服務(wù)器管理公司購買這些類型的服務(wù)器,因此應(yīng)將數(shù)據(jù)庫設(shè)計為能夠充分利用這些服務(wù)器。

  XtraDB 分支有另一個目標(biāo),即成為 InnoDB 存儲引擎的簡單替代,這樣用戶就可以輕松地切換其存儲引擎,無需 更改任何現(xiàn)有的應(yīng)用程序代碼。XtraDB 必須能夠向后兼容 InnoDB,以提供它們想要添加的所有新功能和改進(jìn)。它們實(shí)現(xiàn)了此目標(biāo)。

  XtraDB 的速度有多快?我找到的一個性能測試表明:與內(nèi)置的 MySQL 5.1 InnoDB 引擎相比,它每分鐘可處理 2.7 倍的事務(wù)。。速度顯然是一個不可以忽略的因素,在考慮替代產(chǎn)品時更是如此。

  Percona

  與內(nèi)置的 MySQL 存儲引擎相比,XtraDB 提供了一些極大的改進(jìn),但它不是一款獨(dú)立產(chǎn)品,也無法輕松放入現(xiàn)有 MySQL 安裝。因此,如果您想使用這款新引擎,則必須使用提供它的產(chǎn)品。

  Percona Server 就是這樣一款產(chǎn)品,由領(lǐng)先的 MySQL 咨詢公司 Percona 發(fā)布。Percona Server 是一款獨(dú)立的數(shù)據(jù)庫產(chǎn)品,為用戶提供了換出其 MySQL 安裝并換入 Percona Server 產(chǎn)品的能力。通過這樣做,就可以利用 XtraDB 存儲引擎。Percona Server 聲稱可以完全與 MySQL 兼容,因此從理論上講,您無需更改軟件中的任何代碼。這確實(shí)是一個很大的優(yōu)勢,適合在您尋找快速性能改進(jìn)時控制質(zhì)量。因此,采用 Percona Server 的一個很好的理由是,利用 XtraDB 引擎來盡可能地減少代碼更改。

  此外,他們是 XtraDB 存儲引擎的原作者。Percona 將此代碼用作開源代碼,因此您可以在其他產(chǎn)品中找到它,但引擎的最初創(chuàng)建者與編寫此產(chǎn)品的是同一個人,所以您可以隨心所欲地使用此信息。

  下面是 Percona Server 的聲明,該聲明來自它們自己的網(wǎng)站:

  可擴(kuò)展性:處理更多事務(wù);在強(qiáng)大的服務(wù)器上進(jìn)行擴(kuò)展

  性能:使用了 XtraDB 的 Percona Server 速度非?

  可靠性:避免損壞,提供崩潰安全 (crash-safe) 復(fù)制

  管理:在線備份,在線表格導(dǎo)入/導(dǎo)出

  診斷:高級分析和檢測

  靈活性:可變的頁面大小,改進(jìn)的緩沖池管理Percona 團(tuán)隊的最終聲明是 “Percona Server 是由 Oracle 發(fā)布的最接近官方 MySQL Enterprise 發(fā)行版的版本”,因此與其他更改了大量基本核心 MySQL 代碼的分支有所區(qū)別。Percona Server 的一個缺點(diǎn)是他們自己管理代碼,不接受外部開發(fā)人員的貢獻(xiàn),以這種方式確保他們對產(chǎn)品中所包含功能的控制。

  MariaDB

  另一款提供了 XtraDB 存儲引擎的產(chǎn)品是 MariaDB 產(chǎn)品。它與 Percona 產(chǎn)品非常類似,但是提供了更多底層代碼更改,試圖提供比標(biāo)準(zhǔn) MySQL 更多的性能改進(jìn)。MariaDB 直接利用來自 Percona 的 XtraDB 引擎,由于它們使用的是完全相同的引擎,因此每次使用存儲引擎時沒有顯著的差別。

  此外,MariaDB 提供了 MySQL 提供的標(biāo)準(zhǔn)存儲引擎,即 MyISAM 和 InnoDB。因此,實(shí)際上,可以將它視為 MySQL 的擴(kuò)展集,它不僅提供 MySQL 提供的所有功能,還提供其他功能。MariaDB 還聲稱自己是 MySQL 的替代,因此從 MySQL 切換到 MariaDB 時,無需更改任何基本代碼即可安裝它。

  最后可能也是最重要的一點(diǎn)是,MariaDB 的主要創(chuàng)建者是 Monty Widenius,也是 MySQL 的初始創(chuàng)建者。Monty 成立了一家名為 Monty Program 的公司來管理 MariaDB 的開發(fā),這家公司雇傭開發(fā)人員來編寫和改進(jìn) MariaDB 產(chǎn)品。這既是一件好事,也是一件壞事:有利的一面在于他們是 Maria 功能和 bug 修復(fù)的佼佼者,但公司不是以贏利為目的,而是由產(chǎn)品驅(qū)動的,這可能會帶來問題,因為沒有贏利的公司不一定能長久維持下去。

  Drizzle

  本文介紹的最后一款產(chǎn)品是 Drizzle。與之前介紹的兩款產(chǎn)品不同,Drizzle 與 MySQL 有很大差別,甚至聲稱它們不是 MySQL 的替代產(chǎn)品。他們期望對 MySQL 進(jìn)行一些重大更改,想要提供一種出色的解決方案來解決高可用性問題,即使這意味著要更改我們已經(jīng)習(xí)慣了的 MySQL 的各個方面。

  在公司的 FAQ 頁面,閱讀其中提供的問題時就會發(fā)現(xiàn),Drizzle 進(jìn)一步地強(qiáng)調(diào)了其基本目標(biāo)。他們不滿意 MySQL 4.1 版本之后對 MySQL 代碼進(jìn)行的一些更改,聲稱許多開發(fā)人員不想花費(fèi)額外的錢。他們承認(rèn)其產(chǎn)品與 SQL 關(guān)系數(shù)據(jù)庫甚至是不兼容的。這確實(shí)與 MySQL 有很大的不同。

  與習(xí)慣的 MySQL 有如此大的變化,我們?yōu)槭裁催要考慮這款產(chǎn)品呢?準(zhǔn)確地講,原因與上面的是相同的,Drizzle 是 MySQL 引擎的一次重大修改,它清除了一些表現(xiàn)不佳和不必要的功能,將很多代碼重寫,對它們進(jìn)行了優(yōu)化,甚至將所用語言從 C 換成了 C++,以獲得所需的代碼。此外,Drizzle 并沒有就此結(jié)束修改,該產(chǎn)品在設(shè)計時就考慮到了其目標(biāo)市場,即具有大量內(nèi)容的多核服務(wù)器、運(yùn)行 Linux 的 64 位機(jī)器、云計算中使用的服務(wù)器、托管網(wǎng)站的服務(wù)器和每分鐘接收數(shù)以萬計點(diǎn)擊率的服務(wù)器。這是一個相當(dāng)具體的市場。它太具體了嗎?請記住這些類型的公司目前 在其數(shù)據(jù)庫方面投入的資金,如果他們可以安裝 Drizzle 而不是 MySQL,那么他們的服務(wù)器成本將削減一半,可以節(jié)省很多錢!

  那么,是不是所有人都應(yīng)該使用 Drizzle 呢?等等,正如 Drizzle 反復(fù)指出的那樣,它與 MySQL 不兼容。因此,如果您現(xiàn)在使用的是 MySQL 平臺,那么需要重寫大量代碼,才能使 Drizzle 在您的環(huán)境中正常工作。

  盡管需要額外的工作才能讓它運(yùn)行,但它并不像 Percona 或 MariaDB 那樣快速且易于使用。我之所以介紹 Drizzle,是因為盡管目前它可能不是您的選擇,但幾年之后,它很可能會成為一些人的選擇。因為本文的目標(biāo)是提高您對未來使用的工具的認(rèn)識,所以這是 向您介紹此產(chǎn)品的好機(jī)會。許多領(lǐng)先的 DB 專家相信 Drizzle 將成為未來 5 年內(nèi)高可用性數(shù)據(jù)庫安裝的選擇。

  Drizzle 是完全開源的產(chǎn)品,公開接受開發(fā)人員的貢獻(xiàn)。它不像 MariaDB 那樣有支持其開發(fā)的公司,也不像 Percona 那樣有大量外部開發(fā)人員為其提供貢獻(xiàn)。Drizzle 有很好的成長空間并會提供一些新功能,但可能需要重寫大部分 MySQL 代碼。

  對比圖

  下面是本文中介紹的三款 MySQL 分支產(chǎn)品的概述。

  產(chǎn)品價格目標(biāo)主要功能是否可投入生產(chǎn)?Percona Server免費(fèi)提供 XtraDB 存儲引擎的包裝器和其他分析工具XtraDB是MariaDB免費(fèi)擴(kuò)展 MySQL 以包含 XtraDB 和其他性能改進(jìn)XtraDB是Drizzle免費(fèi)提供比 MySQL 更強(qiáng)大的可擴(kuò)展性和性能改進(jìn)高可用性是

  結(jié)束語

  本文介紹了 MySQL 產(chǎn)品的三個新分支,旨在解決它們使用 MySQL 時遇到的一些問題。這三個分支都是免費(fèi)的開源產(chǎn)品。在使用時,您需要根據(jù) MySQL 已提供的功能來權(quán)衡它們的優(yōu)缺點(diǎn)。我相信,對于閱讀本文的大多數(shù)人來說,MySQL 將仍然 是滿足數(shù)據(jù)庫需求的首選。我很懷疑閱讀本文的大多數(shù)讀者都是每小時擁有 1,000,000 點(diǎn)擊率的網(wǎng)站的所有者。我想再次強(qiáng)調(diào)的是,MySQL 仍然是一款非常出色的產(chǎn)品,是一個非常適合大多數(shù)使用情況的數(shù)據(jù)庫。

  但是,對于那些認(rèn)為自己的網(wǎng)站需要比目前 MySQL 所能提供的更高的可用性、可擴(kuò)展性和性能的人來說,這 3 款產(chǎn)品中的任意一款產(chǎn)品都可能為您提供所需的解決方案。更進(jìn)一步地說,如果您認(rèn)為您的網(wǎng)站將成為 能獲得很多利潤的網(wǎng)站,那么可以考慮使用三款產(chǎn)品中的一款產(chǎn)品,在問題出現(xiàn)之前解決它們。

  最后,出現(xiàn)這些 MySQL 分支的根本原因是:一些創(chuàng)作者想更改 MySQL 的一些基本功能,因為他們無法等到 MySQL 自己完成這些工作。此外,Oracle 的現(xiàn)狀威脅到了 MySQL 的未來,并且許多開發(fā)人員(包括 MySQL 的原始開發(fā)人員)都擔(dān)心該產(chǎn)品的未來,他們還擔(dān)心 Oracle 是否會投入精力保持該產(chǎn)品的領(lǐng)先數(shù)據(jù)庫的地位。這些擔(dān)憂在我看來都是合理的,因此在我們邁向未來時要牢記這些產(chǎn)品。

  

【超越MySQL對流行數(shù)據(jù)庫進(jìn)行分支知識整理】相關(guān)文章:

如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫的備份與恢復(fù)電腦知識06-28

MySQL數(shù)據(jù)庫如何備份與恢復(fù)06-28

如何實(shí)現(xiàn)MySQL數(shù)據(jù)庫的備份與恢復(fù)06-28

MySQL數(shù)據(jù)庫備份守則和方法04-22

用MySQL來創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫表06-28

MySQL數(shù)據(jù)庫所支持的操作系統(tǒng)介紹06-28

如何用crontab系統(tǒng)每天定時備份MySQL數(shù)據(jù)庫06-28

計算機(jī)二級mysql數(shù)據(jù)庫模擬試題07-01

如何在命令行CMD模式下備份MySQL數(shù)據(jù)庫06-28

PHP+mysql的網(wǎng)站作品在面試的時候如何帶去?導(dǎo)出數(shù)據(jù)庫?07-13