我注意到插入和查询中的一个或两个的性能非常差。查询本身是基本的,可以直接从 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 驱动程序比强制性的更好,“更换驱动程序”。
我想知道:
- 如何提高 ruby-mysql 2.9.2 的性能
- 当且仅当我无法使用 ruby-mysql 2.9.2 执行此操作时,我该怎么办?
- 如果我让脚本为数据库插入创建新线程,那么我可以提高性能......这是我需要做的吗?
最佳答案
不要使用纯 ruby mysql gem。它因执行缓慢而臭名昭著。使用带有已编译客户端的版本。
$ gem 安装 mysql
您还需要一个有效的构建环境和 ruby 开发库。
我非常确定接口(interface)/API 是相同的,或者非常相似。
关于mysql - 如何在 Ruby 中获得良好的 MySQL 驱动程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484276/