自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

超越MySQL 對(duì)流行數(shù)據(jù)庫進(jìn)行分支

數(shù)據(jù)庫 MySQL
本文將討論受人們關(guān)注的三個(gè)流行 MySQL 分支:Drizzle、MariaDB 和 Percona Server(包括 XtraDB 引擎)。本文將簡(jiǎn)要介紹每個(gè)分支出現(xiàn)的原因及其目標(biāo),以及是否可在您自己的生產(chǎn)環(huán)境中使用它們。

盡管MySQL是***的程序之一,但是許多開發(fā)人員認(rèn)為有必要將其拆分成其他項(xiàng)目,并且每個(gè)分支項(xiàng)目都有自己的專長(zhǎng)。該需求,以及 Oracle 對(duì)核心產(chǎn)品增長(zhǎng)緩慢的擔(dān)憂,導(dǎo)致出現(xiàn)了許多開發(fā)人員感興趣的子項(xiàng)目和分支。

簡(jiǎn)  介

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

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

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

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

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

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

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

此外,一些分支的***目標(biāo)是成為 MySQL 的替代產(chǎn)品,在這些產(chǎn)品中,您可以輕松地訪問它們的分支,無需更改任何代碼。該分支使用與 MySQL 相同的代碼和界面,因此使過渡變得非常容易。但是,另一個(gè)分支聲稱它與 MySQL 不兼容,需要更改代碼。每個(gè)分支的成熟度各不相同,一些分支聲稱已經(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)有了一個(gè)商業(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 的一個(gè)分支。XtraDB 實(shí)際上是基于 MySQL 的數(shù)據(jù)庫的一個(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ù)庫時(shí),數(shù)據(jù)庫管理員和開發(fā)人員可以基于每個(gè)表選擇存儲(chǔ)引擎類型。兩個(gè)存儲(chǔ)引擎的主要區(qū)別是:MyISAM 沒有提供事務(wù)支持,而 InnoDB 提供了事務(wù)支持。其他差別是許多細(xì)微的性能差別,與 MyISAM 相比,InnoDB 提供了許多細(xì)微的性能改進(jìn),并且在處理潛在的數(shù)據(jù)丟失時(shí)提供了更高的可靠性和安全性。似乎 InnoDB 是用于未來改進(jìn)的更適合的存儲(chǔ)引擎,因此從版本 5.5 開始,MySQL 已將默認(rèn)存儲(chǔ)引擎從 MyISAM 更改為 InnoDB。

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

XtraDB 分支有另一個(gè)目標(biāo),即成為 InnoDB 存儲(chǔ)引擎的簡(jiǎn)單替代,這樣用戶就可以輕松地切換其存儲(chǔ)引擎,無需 更改任何現(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ù)。。速度顯然是一個(gè)不可以忽略的因素,在考慮替代產(chǎn)品時(shí)更是如此。

Percona

與內(nèi)置的 MySQL 存儲(chǔ)引擎相比,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 存儲(chǔ)引擎。Percona Server 聲稱可以完全與 MySQL 兼容,因此從理論上講,您無需更改軟件中的任何代碼。這確實(shí)是一個(gè)很大的優(yōu)勢(shì),適合在您尋找快速性能改進(jìn)時(shí)控制質(zhì)量。因此,采用 Percona Server 的一個(gè)很好的理由是,利用 XtraDB 引擎來盡可能地減少代碼更改。

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

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

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

◆ 性能:使用了 XtraDB 的 Percona Server 速度非常快

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

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

◆ 診斷:高級(jí)分析和檢測(cè)

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

MariaDB

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

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

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

Drizzle

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

在公司的 FAQ 頁面,閱讀其中提供的問題時(shí)就會(huì)發(fā)現(xiàn),Drizzle 進(jìn)一步地強(qiáng)調(diào)了其基本目標(biāo)。他們不滿意 MySQL 4.1 版本之后對(duì) 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)不佳和不必要的功能,將很多代碼重寫,對(duì)它們進(jìn)行了優(yōu)化,甚至將所用語言從 C 換成了 C++,以獲得所需的代碼。此外,Drizzle 并沒有就此結(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ù)以萬計(jì)點(diǎn)擊率的服務(wù)器。這是一個(gè)相當(dāng)具體的市場(chǎng)。它太具體了嗎?請(qǐng)記住這些類型的公司目前 在其數(shù)據(jù)庫方面投入的資金,如果他們可以安裝 Drizzle 而不是 MySQL,那么他們的服務(wù)器成本將削減一半,可以節(jié)省很多錢!

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

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

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

對(duì)比圖

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

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

結(jié)束語

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

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

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

原文鏈接:http://www.oschina.net/question/129540_35438

【編輯推薦】

  1. 2012,國(guó)產(chǎn)數(shù)據(jù)庫將迎發(fā)展春天
  2. MySQL Workbench 5.2.37發(fā)布 附下載
  3. MySQL管理工具 phpMyAdmin3.4.9發(fā)布
  4. MySQL 5.6讓你驚喜的5大新特性
  5. 數(shù)據(jù)庫加密領(lǐng)域的五個(gè)最差實(shí)踐

 

責(zé)任編輯:林師授 來源: 開源中國(guó)社區(qū)
相關(guān)推薦

2011-03-17 13:23:08

數(shù)據(jù)導(dǎo)入導(dǎo)出

2017-06-28 15:53:40

StackOverfl數(shù)據(jù)庫排名

2009-08-25 16:36:16

C#進(jìn)行數(shù)據(jù)庫編程

2011-05-25 00:00:00

數(shù)據(jù)庫設(shè)計(jì)

2009-07-01 10:46:57

JSP程序JSP代碼

2024-04-03 10:05:02

2023-10-26 07:05:58

MySQL數(shù)據(jù)庫

2011-03-01 16:30:55

Oracle

2010-03-30 18:48:24

Oracle 學(xué)習(xí)

2022-04-08 11:25:58

數(shù)據(jù)庫操作AbilityData

2011-05-25 10:13:54

MariaDB

2020-12-18 09:00:00

數(shù)據(jù)庫MongoDBPostgreSQL

2011-05-27 09:14:12

OracleMySQL

2010-11-19 13:28:13

2009-06-25 09:46:04

2025-01-26 00:00:35

2021-07-28 15:44:52

Java開發(fā)數(shù)據(jù)庫

2010-06-09 10:47:36

MySQL數(shù)據(jù)庫集群

2009-02-02 16:50:34

數(shù)據(jù)庫表的鎖定MySQL

2010-01-11 14:00:11

MySQL安裝
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)