超出MySQL 對風行數據庫停止分支的常識小結。本站提示廣大學習愛好者:(超出MySQL 對風行數據庫停止分支的常識小結)文章只能為提供參考,不一定能成為您想要的結果。以下是超出MySQL 對風行數據庫停止分支的常識小結正文
MySQL 是汗青上最受迎接的收費開源法式之一。它是不計其數個網站的數據庫主干,而且可以將它(和 Linux®)作為曩昔 10 年裡 Internet 呈指數級增加的一個無力證實。
那末,假如 MySQL 真的這麼主要,為何還會湧現愈來愈多的焦點 MySQL 產物的高端衍臨盆品?這是由於 MySQL 是收費的開源運用法式,所以開辟人員老是可以取得其代碼,並依照本身的設法主意修正代碼,然後再自行分發代碼。在很長的一段時光裡,在開辟人員本身的臨盆情況 中,沒有任何值得信賴的 MySQL 分支。然則,這類情形很快就產生了轉變。有幾個分支惹起了很多人的存眷。
本文將評論辯論受人們存眷的三個風行 MySQL 分支:Drizzle、MariaDB 和 Percona Server(包含 XtraDB 引擎)。本文將扼要引見每一個分收入現的緣由及其目的,和能否可在您本身的臨盆情況中應用它們。在本文停止時,您應當可以或許答復 “對我的情況來講,這些 MySQL 分支產物能否是一個好的處理計劃?” 如許的成績。
為何要停止分支?
為何須要對 MySQL 停止分支?這是一個異常公道的成績。不計其數的網站依附於 MySQL,而且對很多人來講,它仿佛是一個很好的處理計劃。然則,平日就是如許,合適很多人其實不必定合適一切 人。這促使一些開辟人員想要依據本身的須要開辟出更好的處理計劃。還有甚麼能比將優越的處理計劃轉換為完善的處理計劃更好的呢?。
上面我們將引見這些分支追求轉變的更多細節。一些分支以為 MySQL 變得太癡肥 了,供給了很多用戶永久不會感興致的功效,就義了機能的簡略性。假如人們對更精簡的 MySQL 4 特殊滿足,那末為何還要在 MySQL 5 中添加額定的龐雜性呢?關於此分支來講,更好的 MySQL 分支應當更簡略、更快捷,是以供給的功效也較少,但如許會使這些功效極端敏捷地施展感化,而且切記目的受眾,在本例中,目的受眾是高可用性網站。
關於其他分支來講,MySQL 並沒有供給足夠多的 新功效,或許是添加新功效的速度太慢了。他們能夠以為 MySQL 沒有跟上高可用性網站的目的市場的成長情勢,這些網站運轉於具有年夜量內存的多核處置器之上。正如熟習 MySQL 的人所曉得的那樣,MySQL 供給了兩種存儲引擎:MyISAM 和 InnoDB。這一分支以為這兩種存儲引擎都沒有供給他們所需的內容,是以他們創立了一種異常合適其目的的新存儲引擎。
另外,一些分支的最高目的是成為 MySQL 的替換產物,在這些產物中,您可以輕松地拜訪它們的分支,無需更改任何代碼。該分指使用與 MySQL 雷同的代碼和界面,是以使過渡變得異常輕易。然則,另外一個分支宣稱它與 MySQL 不兼容,須要更改代碼。每一個分支的成熟度各不雷同,一些分支宣稱曾經預備停當可以投入臨盆,而別的一些則宣稱今朝本身還遠達不到這一最高目的。
最初,關於 MySQL 在 Oracle 下將若何成長仍不太肯定。Oracle 收買了 Sun,也收買了 MySQL,如今 Oracle 掌握 MySQL 產物自己,並引導開辟社區開辟新的制品。因為 Oracle 曾經有了一個貿易數據庫,是以人們擔憂他們能夠沒有足夠的資本來使 MySQL 堅持其搶先位置。是以,很多分支也是這些潛伏擔憂所發生的成果,他們擔憂 MySQL 作為搶先的收費開源數據庫供給的功效能夠太少、宣布周期太慢而且支撐費用更昂貴。
XtraDB
XtraDB 是一款自力的產物,但它仍被以為是 MySQL 的一個分支。XtraDB 現實上是基於 MySQL 的數據庫的一個存儲引擎。XtraDB 被以為是已成為 MySQL 一部門的尺度 MyISAM 和 InnoDB 的一個額定存儲引擎。MySQL 4 和 5 應用默許的 MyISAM 存儲引擎裝置每一個表。InnoDB 也是一個絕對較新的存儲引擎選擇,在樹立數據庫時,數據庫治理員和開辟人員可以基於每一個表選擇存儲引擎類型。兩個存儲引擎的重要差別是:MyISAM 沒有供給事務支撐,而 InnoDB 供給了事務支撐。其他差異是很多纖細的機能差異,與 MyISAM 比擬,InnoDB 供給了很多纖細的機能改良,而且在處置潛伏的數據喪失時供給了更高的靠得住性和平安性。仿佛 InnoDB 是用於將來改良的更合適的存儲引擎,是以從版本 5.5 開端,MySQL 已將默許存儲引擎從 MyISAM 更改成 InnoDB。
基於這些優勢,InnoDB 存儲引擎自己拆分出了一個分支,一個名為 XtraDB 的更新的存儲引擎。這個存儲引擎有多新呢?它 3 年前由 Percona 初次宣布,是以它絕對較新。它是專門針對在古代辦事器上運轉的古代高可用性網站設計的。它被設計為在具有十幾個或更多焦點和年夜內存(32 GB及更多)的辦事器上運轉。任何公司都可以從辦事器治理公司購置這些類型的辦事器,是以應將數據庫設計為可以或許充足應用這些辦事器。
XtraDB 分支有另外一個目的,即成為 InnoDB 存儲引擎的簡略替換,如許用戶便可以輕松地切換其存儲引擎,無需 更改任何現有的運用法式代碼。XtraDB 必需可以或許向後兼容 InnoDB,以供給它們想要添加的一切新功效和改良。它們完成了此目的。
XtraDB 的速度有多快?我找到的一特性能測試注解:與內置的 MySQL 5.1 InnoDB 引擎比擬,它每分鐘可處置 2.7 倍的事務。。速度明顯是一個弗成以疏忽的身分,在斟酌替換產物時更是如斯。
Percona
與內置的 MySQL 存儲引擎比擬,XtraDB 供給了一些極年夜的改良,但它不是一款自力產物,也沒法輕松放入現有 MySQL 裝置。是以,假如您想應用這款新引擎,則必需應用供給它的產物。
Percona Server 就是如許一款產物,由搶先的 MySQL 征詢公司 Percona 宣布。Percona Server 是一款自力的數據庫產物,為用戶供給了換出其 MySQL 裝置並換入 Percona Server 產物的才能。經由過程如許做,便可以應用 XtraDB 存儲引擎。Percona Server 宣稱可以完整與 MySQL 兼容,是以從實際上講,您無需更改軟件中的任何代碼。這確切是一個很年夜的優勢,合適在您尋覓疾速機能改良時掌握質量。是以,采取 Percona Server 的一個很好的來由是,應用 XtraDB 引擎來盡量地削減代碼更改。
另外,他們是 XtraDB 存儲引擎的原作者。Percona 將此代碼用作開源代碼,是以您可以在其他產物中找到它,但引擎的最後創立者與編寫此產物的是統一小我,所以您可以為所欲為地應用此信息。
上面是 Percona Server 的聲明,該聲明來自它們本身的網站:
◆ 可擴大性:處置更多事務;在壯大的辦事器長進行擴大
◆ 機能:應用了 XtraDB 的 Percona Server 速度異常快
◆ 靠得住性:防止破壞,供給瓦解平安 (crash-safe) 復制
◆ 治理:在線備份,在線表格導入/導出
◆ 診斷:高等剖析和檢測
◆ 靈巧性:可變的頁面年夜小,改良的緩沖池治理Percona 團隊的終究聲明是 “Percona Server 是由 Oracle 宣布的最接近官方 MySQL Enterprise 刊行版的版本”,是以與其他更改了年夜量根本焦點 MySQL 代碼的分支有所差別。Percona Server 的一個缺陷是他們本身治理代碼,不接收內部開辟人員的進獻,以這類方法確保他們對產物中所包括功效的掌握。
MariaDB
另外一款供給了 XtraDB 存儲引擎的產物是 MariaDB 產物。它與 Percona 產物異常相似,然則供給了更多底層代碼更改,試圖供給比尺度 MySQL 更多的機能改良。MariaDB 直接應用來自 Percona 的 XtraDB 引擎,因為它們應用的是完整雷同的引擎,是以每次應用存儲引擎時沒有明顯的差異。
另外,MariaDB 供給了 MySQL 供給的尺度存儲引擎,即 MyISAM 和 InnoDB。是以,現實上,可以將它視為 MySQL 的擴大集,它不只供給 MySQL 供給的一切功效,還供給其他功效。MariaDB 還宣稱本身是 MySQL 的替換,是以從 MySQL 切換到 MariaDB 時,無需更改任何根本代碼便可裝置它。
最初能夠也是最主要的一點是,MariaDB 的重要創立者是 Monty Widenius,也是 MySQL 的初始創立者。Monty 成立了一家名為 Monty Program 的公司來治理 MariaDB 的開辟,這家公司雇傭開辟人員來編寫和改良 MariaDB 產物。這既是一件功德,也是一件好事:有益的一面在於他們是 Maria 功效和 bug 修復的佼佼者,但公司不是以賺錢為目標,而是由產物驅動的,這能夠會帶來成績,由於沒有賺錢的公司紛歧定能久長保持下去。
Drizzle
本文引見的最初一款產物是 Drizzle。與之前引見的兩款產物分歧,Drizzle 與 MySQL 有很年夜差異,乃至宣稱它們不是 MySQL 的替換產物。他們希冀對 MySQL 停止一些嚴重更改,想要供給一種精彩的處理計劃來處理高可用性成績,即便這意味著要更改我們曾經習氣了的 MySQL 的各個方面。
在公司的 FAQ 頁面,浏覽個中供給的成績時就會發明,Drizzle 進一步地強調了其根本目的。他們不滿足 MySQL 4.1 版本以後對 MySQL 代碼停止的一些更改,宣稱很多開辟人員不想消費額定的錢。他們認可其產物與 SQL 關系數據庫乃至是不兼容的。這確切與 MySQL 有很年夜的分歧。
與習氣的 MySQL 有如斯年夜的變更,我們為何還要斟酌這款產物呢?精確地講,緣由與下面的是雷同的,Drizzle 是 MySQL 引擎的一次嚴重修正,它消除了一些表示欠安和不用要的功效,將許多代碼重寫,對它們停止了優化,乃至將所用說話從 C 換成了 C++,以取得所需的代碼。另外,Drizzle 並沒有就此停止修正,該產物在設計時就斟酌到了其目的市場,即具有年夜量內容的多核辦事器、運轉 Linux 的 64 位機械、雲盤算中應用的辦事器、托管網站的辦事器和每分鐘吸收數以萬計點擊率的辦事器。這是一個相當詳細的市場。它太詳細了嗎?請記住這些類型的公司今朝 在其數據庫方面投入的資金,假如他們可以裝置 Drizzle 而不是 MySQL,那末他們的辦事器本錢將增添一半,可以節儉許多錢!
那末,是否是一切人都應當應用 Drizzle 呢?等等,正如 Drizzle 重復指出的那樣,它與 MySQL 不兼容。是以,假如您如今應用的是 MySQL 平台,那末須要重寫年夜量代碼,能力使 Drizzle 在您的情況中正常任務。
雖然須要額定的任務能力讓它運轉,但它其實不像 Percona 或 MariaDB 那樣疾速且易於應用。我之所以引見 Drizzle,是由於雖然今朝它能夠不是您的選擇,但幾年以後,它極可能會成為一些人的選擇。由於本文的目的是進步您對將來應用的對象的熟悉,所以這是 向您引見此產物的好機遇。很多搶先的 DB 專家信任 Drizzle 將成為將來 5 年內高可用性數據庫裝置的選擇。
Drizzle 是完整開源的產物,地下接收開辟人員的進獻。它不像 MariaDB 那樣有支撐其開辟的公司,也不像 Percona 那樣有年夜量內部開辟人員為其供給進獻。Drizzle 有很好的生長空間並會供給一些新功效,但能夠須要重寫年夜部門 MySQL 代碼。
比較圖
上面是本文中引見的三款 MySQL 分支產物的概述。
產物 價錢 目的 重要功效 能否可投入臨盆? Percona Server 收費 供給 XtraDB 存儲引擎的包裝器和其他剖析對象 XtraDB 是 MariaDB 收費 擴大 MySQL 以包括 XtraDB 和其他機能改良 XtraDB 是 Drizzle 收費 供給比 MySQL 更壯大的可擴大性和機能改良 高可用性 是
停止語
本文引見了 MySQL 產物的三個新分支,旨在處理它們應用 MySQL 時碰到的一些成績。這三個分支都是收費的開源產物。在應用時,您須要依據 MySQL 已供給的功效來衡量它們的優缺陷。我信任,關於浏覽本文的年夜多半人來講,MySQL 將依然 是知足數據庫需求的首選。我很疑惑浏覽本文的年夜多半讀者都是每小時具有 1,000,000 點擊率的網站的一切者。我想再次強調的是,MySQL 依然是一款異常精彩的產物,是一個異常合適年夜多半應用情形的數據庫。
然則,關於那些以為本身的網站須要比今朝 MySQL 所能供給的更高的可用性、可擴大性和機能的人來講,這 3 款產物中的隨意率性一款產物都能夠為您供給所需的處理計劃。更進一步地說,假如您以為您的網站將成為 能取得許多利潤的網站,那末可以斟酌應用三款產物中的一款產物,在成績湧現之前處理它們。
最初,湧現這些 MySQL 分支的基本緣由是:一些創作者想更改 MySQL 的一些根本功效,由於他們沒法比及 MySQL 本身完成這些任務。另外,Oracle 的近況威逼到了 MySQL 的將來,而且很多開辟人員(包含 MySQL 的原始開辟人員)都擔憂該產物的將來,他們還擔憂 Oracle 能否會投入精神堅持該產物的搶先數據庫的位置。這些擔心在我看來都是公道的,是以在我們邁向將來時要切記這些產物。