mysql2旨在 替代
现有
mysql宝石,该宝石已经过时了一段时间。我还听说笔者是不支持它了,而是建议大家用他的纯Ruby版本,因为它有更多的Ruby实现兼容(但 多
慢)。
mysqlgem
的第一个问题是它在C中不进行任何类型转换,它为您提供了红宝石字符串,然后您必须将其转换为正确的红宝石类型。在纯红宝石中执行此 *** 作非常慢,并且会在堆上创建最初不需要的对象。众所周知,Ruby的GC是它运行缓慢的主要原因。因此,最好避免使用它,并尽可能在纯C语言中执行更多 *** 作。
其次,它在连接,发送查询和等待响应甚至关闭连接时会阻塞 整个 ruby VM。
mysqlplus绝对可以解决此问题,但据我所知仅用于发送查询。
mysql2旨在解决这些问题,同时保持API非常简单。
EricWong(Unicorn的作者)贡献了一些很棒的补丁程序,这些补丁程序几乎使所有内容都不受阻塞,并且/或者在Ruby中发布了GVL。在
Mysql2::Result类实现可枚举,所以如果你知道如何使用数组,你知道如何使用它。
我现在只知道有几个人在生产中使用它,但是它也在Twitter,WorkingPoint和UserVoice进行评估。
我也正在谈论
Yehuda它是Rails
3出厂时的推荐/默认设置。它的一些技术和优化也将
do_mysql很快被带入DataObjects的驱动程序中。
ActiveRecord驱动程序目前应该非常稳定。您需要做的就是安装gem,然后将database.yml中的适配器名称更改为
mysql2。
如果您有兴趣使用它,请尝试一下。如果您发现任何问题,我会迅速进行修复;)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)