当前位置: 首页 > 面试题库 >

Ruby,Rails:mysql2 gem,有人使用这个gem吗?稳定吗?

李招
2023-03-14
问题内容

我发现mysql2 gem。它与ruby 1.9和utf8编码(与mysql
gem相对)工作正常。

但是我有疑问。有人在生产中使用这种宝石吗?性能测试呢?它比mysql gem快吗?稳定吗?


问题答案:

mysql2旨在 替代
现有mysql宝石,该宝石已经过时了一段时间。我还听说笔者是不支持它了,而是建议大家用他的纯Ruby版本,因为它有更多的Ruby实现兼容(但
慢)。

mysqlgem
的第一个问题是它在C中不进行任何类型转换,它为您提供了红宝石字符串,然后您必须将其转换为正确的红宝石类型。在纯红宝石中执行此操作非常慢,并且会在堆上创建最初不需要的对象。众所周知,Ruby的GC是它运行缓慢的主要原因。因此,最好避免使用它,并尽可能在纯C语言中执行更多操作。

其次,它在连接,发送查询和等待响应甚至关闭连接时会阻塞 整个 ruby VM。mysqlplus绝对可以解决此问题,但据我所知仅用于发送查询。

mysql2旨在解决这些问题,同时保持API非常简单。Eric Wong(Unicorn的作者)贡献了一些很棒的补丁程序,这些补丁程序几乎使所有内容都不受阻塞,并且/或者在Ruby中发布了GVL。在Mysql2::Result类实现可枚举,所以如果你知道如何使用数组,你知道如何使用它。

我现在只知道有几个人在生产中使用它,但是它也在Twitter,WorkingPoint和UserVoice进行评估。

我也正在谈论Yehuda它是Rails
3出厂时的推荐/默认设置。它的一些技术和优化也将do_mysql很快被带入DataObjects的驱动程序中。

ActiveRecord驱动程序目前应该非常稳定。您需要做的就是安装gem,然后将database.yml中的适配器名称更改为mysql2

如果您有兴趣使用它,请尝试一下。如果您发现任何问题,我会迅速进行修复;)



 类似资料:
  • 我是Hibernate和JPA的新手,我对这个注释有问题。有人能简单地解释一下这个注释到底在做什么吗?因为在这种情况下,文档对我来说很难理解。 编辑我明白什么是持久上下文,但在代码中,我有这样的例子: 我对@PerustenceContext做什么有问题。抱歉,也许我没有具体说明。

  • 问题内容: 使用带有x和y数据的pcolormesh绘制数组会删除数据行 为了说明我的意思,请参见以下内容: 产生以下5x5网格: 但是,如果我想为这样的数据定义x和y轴,则pcolormesh将创建一个4x4网格,顶部和右侧的行会丢失… 为了获得完整的5x5图,我必须做 这只是pcolormesh的怪癖吗?还是有人可以解释为什么pcolormesh如此行为? 问题答案: 您看到的行为是预期的。该

  • 我在wordpress中的裁剪图像中发现了一个奇怪的bug 我使用WP_Customize_crapped_Image_控件来裁剪图像。在那里我设置了750的宽度 这很好,但在裁剪其他图像时显示错误 *这让我发疯,花了这么多小时后,我意识到(错误,不显示裁剪帧)它发生与图像具有相同的宽高比,我在WP_Customize_Cropped_Image_Control提供(如果宽高比匹配,然后发生错误)

  • 我必须创建程序,这样我就可以输入3个字母加上像“Jan1999”这样的一年,并显示日历。

  • 使用命令行工具,如何安装特定版本的gem?

  • 问题内容: 当我在python集上进行多次迭代(在调用之间不进行更改)时,是否可以假定它总是以相同顺序返回元素?如果不是,更改订单的理由是什么?它是确定性的还是随机的?还是实现定义? 当我重复调用相同的python程序(不是随机的,不是依赖于输入的)时,我会得到相同的集合排序吗? 潜在的问题是python集迭代顺序是否仅取决于用于实现集的算法,还是取决于执行上下文? 问题答案: 没有正式的关于集合