Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将数据从远程数据库导入本地数据库的最快方法是什么_Ruby On Rails_Performance - Fatal编程技术网

Ruby on rails 将数据从远程数据库导入本地数据库的最快方法是什么

Ruby on rails 将数据从远程数据库导入本地数据库的最快方法是什么,ruby-on-rails,performance,Ruby On Rails,Performance,我当前的项目是从远程数据库中提取数据并保存在本地。在一些压力测试中,我们看到写入数据库的可怕结果。给你一些观点: 我们的压力测试进行了约9000次操作,保存了约54000条记录。(1个动作=6个记录) 6条记录是指数据库中4个不同表中的6行 Heroku花了15-20分钟写下所有这些记录 在当地,我还要写45分钟 我不确定什么是快/慢,但显然我们不能让网页像那样挂在那里。我的下一个想法是一个CRON作业,但heroku每小时只允许一个CRON作业。这将是一个开始,但我们最终可能需要更多 我从

我当前的项目是从远程数据库中提取数据并保存在本地。在一些压力测试中,我们看到写入数据库的可怕结果。给你一些观点:

  • 我们的压力测试进行了约9000次操作,保存了约54000条记录。(1个动作=6个记录)
  • 6条记录是指数据库中4个不同表中的6行
  • Heroku花了15-20分钟写下所有这些记录
  • 在当地,我还要写45分钟
我不确定什么是快/慢,但显然我们不能让网页像那样挂在那里。我的下一个想法是一个CRON作业,但heroku每小时只允许一个CRON作业。这将是一个开始,但我们最终可能需要更多

我从远程设备提取数据的方式是:

  • 查询远程
  • 将远程字段与本地字段匹配
  • 保存记录
  • 循环到下一条记录
也许有一种使用ruby更快的方法?

  • 对于select语句,是否使用良好的索引
  • 您是否使用数据库工具(mysql描述或mssql中的veiw查询计划等)检查过它们
  • 说到索引,如果索引太多,它们会减慢插入速度
  • 您也可以尝试并行运行,这可能会更快
  • 您应该分析您的代码,以准确地说明发生了什么
还有其他方法可以做到这一点。所有数据库都有一个大容量导出实用程序:mysqldump/LoadDataInflie是mysql的首选工具。如果您只是将数据从一个数据库复制到另一个数据库,那么这肯定是首选的方法。浏览应用程序肯定会很慢。

  • 对于select语句,是否使用良好的索引
  • 您是否使用数据库工具(mysql描述或mssql中的veiw查询计划等)检查过它们
  • 说到索引,如果索引太多,它们会减慢插入速度
  • 您也可以尝试并行运行,这可能会更快
  • 您应该分析您的代码,以准确地说明发生了什么
还有其他方法可以做到这一点。所有数据库都有一个大容量导出实用程序:mysqldump/LoadDataInflie是mysql的首选工具。如果您只是将数据从一个数据库复制到另一个数据库,那么这肯定是首选的方法。浏览应用程序肯定会很慢