MySQL不再支持Berkeley DB 转而添加插件的示例分析

53次阅读
没有评论

共计 2371 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 MySQL 不再支持 Berkeley DB 转而添加插件的示例分析,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在最新的 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 主线之外进行开发更加快捷。我相信有一天可以将它们合并在一起。”

关于“MySQL 不再支持 Berkeley DB 转而添加插件的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计2371字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)