mysql和mysql2 gem的区别是什么?

77

我曾经使用过 mysql gem,但现在经常听到 mysql2 gem。另外,在 Rails 3.0.x 中,它已默认包含在 Gemfile 中。

使用 mysql2 gem 与 mysql gem 相比有什么不同和优势?


“默认包含在Gemfile中”?我在3.2.8中没有看到。 - KMC
@KMC,一年前它被包含了吗? :) - fl00r
我也在寻找一个差异列表,我找到了一个别处已经回答的each_hash被删除的区别。知道还有哪些变化需要在我的代码库中搜索会很好。 - Ian Vaughan
2个回答

83
这里是来自 mysql2宝石页面 的一句引语:

是啊...但为什么?

某人:老兄,Mysql gem 就可以 运行得很好。

我:当然没错,但它只返回字段值的 nil 和字符串。 让你在 Ruby-land 中将它们转换为适当的 Ruby 类型 - 这 得慢死了。

某人:好吧,但 do_mysql 已经能够把 MySQL 类型映射到 Ruby 对象并返回给我了。

我:没错,但它的API要复杂得多,而且可能会慢 ~2倍。


12

mysql2比mysql gem要快得多。除了高效外,它还具有更多功能,并且像Ruby on Rails一样更加有趣。


8
更多功能?我最近检查过,它甚至不能执行预处理语句! - wmarbut
我也很惊讶没有准备好的语句支持,尽管看起来它在五天前就已经接近了(https://github.com/brianmario/mysql2/pull/289)。 - twelve17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接