如何在Ruby中获得不错的MySQL驱动程序性能

时间:2010-03-20 18:47:51

标签: mysql ruby performance

我注意到我的插入和查询中的一个或两个都表现得非常差。查询本身是基本的,可以直接从mysql执行。我写的ruby脚本只有1个线程,所以只使用了1个连接,除非脚本终止,否则永远不会关闭。非常基本,我只是想插入很多行。有一个或两个查询来获取代理键,或检查重复项,但复杂性只是O(n)。此外,它不像有数百万条记录,所以查询本身也没有时间运行。

我正在使用:

  • Ruby 1.9.1
  • Gem / driver:ruby-mysql 2.9.2
  • MySQL 5.1.37-1ubuntu5.1
  • ^ 32位ubuntu发行版上的所有32位版本

我每秒大约需要1-2次插入,非常慢。我知道很多人会建议改变司机,但这意味着我需要进行一些重构和重新测试。所以我真的很感激任何帮助,但是如果你确实建议你至少说出你为什么这样做... EG:如果你之前使用过ruby-mysql xxx并且发现另一个mysql驱动程序更好而不是强制性的,“改变司机“。

我想知道的事情:

  1. 如何使用ruby-mysql 2.9.2
  2. 提高性能
  3. 当且仅当我不能用ruby-mysql 2.9.2执行此操作时,我该怎么办?
  4. 如果我让脚本为数据库插入创建新线程,那么我可以加快性能......这是我需要做的吗?

1 个答案:

答案 0 :(得分:3)

不要使用pure-ruby mysql gem。表现缓慢是臭名昭着的。使用已编译客户端的那个。

$ gem install mysql

您还需要一个可用的构建环境和ruby开发库。

非常确保接口/ API相同或非常相似。