如何在Ruby中获得良好的MySQL驱动程序性能

如何在Ruby中获得良好的MySQL驱动程序性能,mysql,ruby,performance,Mysql,Ruby,Performance,我注意到,对于插入和查询中的一个或两个,我的性能非常差。查询本身是基本的,可以直接从mysql执行,没有延迟。我编写的ruby脚本只有一个线程,因此只使用了一个连接,并且除非脚本终止,否则不会关闭。非常基本,我只是想插入很多行。要获取代理密钥或检查重复项,需要进行一两次查找,但复杂度仅为O(n)。而且,它不像有数百万条记录,所以查询本身也不会花时间运行 我正在使用: Ruby 1.9.1 Gem/驱动程序:ruby mysql 2.9.2 MySQL 5.1.37-1ubuntu5.1 ^32

我注意到,对于插入和查询中的一个或两个,我的性能非常差。查询本身是基本的,可以直接从mysql执行,没有延迟。我编写的ruby脚本只有一个线程,因此只使用了一个连接,并且除非脚本终止,否则不会关闭。非常基本,我只是想插入很多行。要获取代理密钥或检查重复项,需要进行一两次查找,但复杂度仅为O(n)。而且,它不像有数百万条记录,所以查询本身也不会花时间运行

我正在使用:

  • Ruby 1.9.1
  • Gem/驱动程序:ruby mysql 2.9.2
  • MySQL 5.1.37-1ubuntu5.1
  • ^32位ubuntu发行版上的所有32位版本
我每秒得到大约1-2个插入,相当慢。我知道很多人会建议更改驱动程序,但这意味着我要做一些重构和重新测试。所以我真的很感谢你的帮助,但如果你真的这么建议,请至少说出你为什么这么做。。。例如:如果您以前使用过ruby mysql x.x.x,并且发现另一个mysql驱动程序比强制性的“更改驱动程序”更好

我想知道的是:

  • 如何使用ruby mysql 2.9.2提高性能
  • 如果且仅当我不能用ruby mysql 2.9.2实现这一点时,我应该怎么做
  • 如果我让脚本为DB插入创建新线程,那么我可以提高性能。。。这就是我需要做的吗

  • 不要使用纯ruby mysql gem。它因表演缓慢而臭名昭著。与编译后的客户端一起使用

    $gem安装mysql

    您还需要一个工作的构建环境和ruby开发库


    我很确定接口/API是相同的,或者非常相似。

    为什么不显示一些代码片段,以及数据库表的基本定义。它们不相关。这是一个驱动程序问题,因为查询本身不会花费很长时间。这个问题实际上是特定于Ruby SQL驱动程序的,而不是SQL性能。