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

标签 mysql ruby performance

我注意到插入和查询中的一个或两个的性能非常差。查询本身是基本的,可以直接从 mysql 立即执行。我编写的 ruby​​ 脚本只有 1 个线程,因此只有 1 个连接正在使用,并且永远不会关闭,除非脚本终止。非常基本,我只是想插入很多行。需要一两次查找来获取代理键或检查重复项,但复杂度仅为 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 驱动程序比强制性的更好,“更换驱动程序”。

我想知道:

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

最佳答案

不要使用纯 ruby​​ mysql gem。它因执行缓慢而臭名昭著。使用带有已编译客户端的版本。

$ gem 安装 mysql

您还需要一个有效的构建环境和 ruby​​ 开发库。

非常确定接口(interface)/API 是相同的,或者非常相似。

关于mysql - 如何在 Ruby 中获得良好的 MySQL 驱动程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484276/

相关文章:

Ruby 异常处理

java - 有 jconsole 的 CLI 版本吗?

performance - 将排序的文件与 fifos 组合

Mysql:何时在主服务器上的二进制日志中记录一个事件

mysql慢复杂查询与排序依据

php - 在数据库users表中保存users 70权限可以吗?

Ruby:将两个数组的各个值配对成第三个数组

php - 如何在结果中以 0 排序

Ruby:仅当函数不返回 nil 时才分配函数的输出

并发存储过程执行期间 MySQL 性能下降