來自: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主線之外進行開發更加快捷。我相信有一天可以將它們合並在一起。”
原文鏈接:http://news.csdn.net/n/20060929/95676.html