【问题标题】:Ruby on Rails: Best way to show big data report efficientlyRuby on Rails:高效显示大数据报告的最佳方式
【发布时间】:2017-11-01 13:34:54
【问题描述】:

我正在实施一份报告,该报告显示了对大量数据的分析。该过程包括对 4 个数据库表进行连接和过滤,这些表本身平均有大约一百万条记录。完整的处理和页面渲染大约需要两分钟。通过优化查询和对数据库应用索引,我已将此时间缩短到大约 1 分 35 秒。

考虑到我们无法进一步优化查询,有哪些可能的解决方案来提高 Ruby on Rails 中通常使用的处理速度。

【问题讨论】:

  • 数据多久更改一次?每次请求页面时,您都需要“实时”或“按需”访问吗?
  • 既然你认为你已经达到了优化的极限,现在你可以继续获得更大/更多的硬件。
  • 另外,您可以在后台预先计算它,页面将只显示准备好的数据。
  • @craig.kaminsky 数据会经常更新。实际上,这是我的帐户活动报告。因此,如果我执行另一项任务,报告应该会显示更新的统计信息。
  • 没有代码很难说。您是否考虑过设置工作人员来处理数据并将结果存储在表中?结果必须是最新的吗?如果期望实时,您可能无能为力。

标签: ruby-on-rails ruby psql


【解决方案1】:

也许您可以将生成报告转移到某个后台作业?您在这里有 2 个选项: 1. 在某些操作/cron 作业后生成(例如,项目完成 -> 生成报告) 2. 有一个漂亮的按钮(请求报告),然后向用户显示好消息,您将通过电子邮件向他发送报告的链接(或者您甚至可以在处理完成后将其显示在前端)。

我曾经做过类似的事情,我们在生成报告后将完整的 html 存储在 S3 上。仅缓存数据是不够的 - 数据量如此之大,以至于生成 HTML 需要相当长的时间。

【讨论】:

    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    相关资源
    最近更新 更多