MySQL不再支援Berkeley DB 轉而新增外掛(轉)

BSDLite發表於2007-08-15
MySQL不再支援Berkeley DB 轉而新增外掛(轉)[@more@]作者:IT168 來自:IT168
 在最新的5.1.12版中,MySQL將把Berkeley DB(BDB)儲存引擎移出所支援的資料庫引擎列表。有些觀察人士認為,這一行動與Oracle收購Sleepycat有關,而下一個可能被移出的可能是 InnoDB。然而MySQL架構主管布萊恩•阿克爾(Brian Aker)表示,他們不會放棄InnoDB,此次放棄Berkeley引擎是出於技術原因。布萊恩•阿克爾同時宣佈MySQL公司將釋出新一款的用於 MySQL的memcache儲存引擎外掛。

  此事與Oracle收購Sleepycat與Innobase的訊息之間的關係是顯而易見的。有人認為Oracle是為了破壞MySQL的業務,以及放棄支援BDB引擎的決定。但阿克爾表示事情不是這樣。

  MySQL、Oracle各執一詞

  如果不是針對Oracle,為什麼要放棄BDB呢?一種可能是,BDB引擎應用不夠廣泛。阿克爾稱,Debian應該是唯一一個帶有BDB支援的 MySQL合作商,而“MySQL的主程式啟用它的方式也很奇怪”。“我相信實際的安裝數量屈指可數。並不是說BDB引擎本身不好,更主要的原因是 InnoDB有一個更活躍的開發團隊在支援。在開源世界中,活躍的程式碼是使用廣泛的主要原因。”

  Oracle嵌入式系統營銷副總裁雷克•王(Rex Wang)表示,實際上是Berkeley DB開發團隊要求取消支援的。“據我們所知,現在的MySQL已經幾乎不再使用Berkeley DB,所以我們(Oracle)的使用者群並沒有產生衝突。”

  雖然BDB使用不算廣泛,但是,阿克爾表示BDB不會從MySQL 5.0及以前的版本中消失。所以安裝了MySQL 4.x或MySQL 5.0.x,並使用BDB的使用者無需為此擔心。阿克爾還強調,“MySQL從來沒有為BDB提供商業支援,所以無需任何更改。”

  MySQL在放棄BDB的事情上沒有太過聲張,但卻寫入了5.1.12版本的MySQL更新說明中。5.1版一直被視為測試版,5.1.12也還沒有釋出,因此MySQL沒有就此事發布正式宣告也不足為奇。

  有一些特別的分析人士抱怨說,這是MySQL缺乏與使用者溝通的表現之一,並認為接下來遭此“橫禍”的大概會是InnoDB。

  阿克爾稱,放棄BDB並不意味著接下來將要針對InnoDB發難,也不意味著InnoDB被Oracle收購之後MySQL將要拋棄InnoDB儲存引擎。“我的狗總認為所有松鼠都是賊。上星期我花了幾個小時來整理InnoDB介面的程式碼。我發現仍然有Heikki加入的新程式碼。幾個月前我還與人談論如何擴充套件MySQL中的SQL語法來平衡InnoDB中的全文檢索支援。沒有任何跡象表明InnoDB將要從此消失,或者Oracle停止對它進行支援。” 而且MySQL有什麼理由拋棄InnoDB?我們的使用者中有許多人還在使用它。我做網站的時候也要用到,所以我個人很希望它順利執行下去。”

  Oracle嵌入式系統營銷副總裁雷克•王指出,Oracle會繼續支援用於MySQL的InnoDB儲存引擎。“InnoDB目前是MySQL中使用最多的事務型資料儲存引擎,而Oracle會繼續向MySQL提供InnoDB支援,包括推進更新和全面支援。所以說MySQL和Oracle沒有必要繼續支援第二個事務型儲存引擎Berkeley DB。”他強調BDB是MySQL的第一個事務型引擎,但InnoDB發展迅速,已經成為使用者的首選。“因為InnoDB全力支援唯一的使用者MySQL,而Berkeley DB則要面對一系列使用者和開源社群。MySQL使用的是修改版本的BDB,驅動本身並沒有針對它進行最佳化,這種情況保持了許多年。而InnoDB一直在進行針對MySQL的最佳化,目前已經成熟穩定。”

  外掛:Plugins anyone?

  開源的優勢在於任何需要的人都可以進行選擇使用。如果開源社群有興趣繼續支援BDB,阿克爾認為把BDB製作為儲存引擎外掛是很容易的事。並舉出以外掛形式加入MySQL而沒有整合在內的引擎例子,如PrimeBase XT的MySQL事務型引擎,和Solid Information Technology的MySQL儲存引擎。

  阿克爾還提到他所開發的memcache儲存引擎外掛,該外掛可以為MySQL直接加入Memcached功能,而無需單獨執行Memcached。 Memcached是一些高流量網站(如LiveJournal)透過允許訪問者訪問記憶體資訊,而無需訪問磁碟來提高效能的工具。阿克爾稱,使用 Memcache作為儲存引擎會使開發人員更加輕鬆。“資料的往返成本會得到控制,因為資料可以直接從資料庫中傳送。你也可以簡單使用SELECT語句來比較memcache與資料庫內容的區別。使用更輕鬆,整合更容易,往返資料量更少……全部考慮進來是個非常好的主意。”

  這一外掛還在早期開發中。阿克爾稱它為“前Alpha版本”,所以有些SQL語句可能還無法在memcache中執行。阿克爾說,SELECT、 UPDATE、DELETE和INSERT語句都可以執行,而ORDER BY、REPLACE等一些語句還不能執行。

  Memcache會不會成為MySQL的主流元件?阿克爾稱,“這取決於需求和使用。目前將memcache置於MySQL主線之外進行開發更加快捷。我相信有一天可以將它們合併在一起。”

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-959428/,如需轉載,請註明出處,否則將追究法律責任。

相關文章