【发布时间】:2012-03-22 18:44:44
【问题描述】:
所以我开始着手一个项目,我必须从 xls excel 电子表格中导入大量记录。
电子表格有超过 105 列和 1750 行,我使用 rails 控制台编写脚本,为每个列/行条目创建 1 条记录....好吧,这只是 183,000 条记录的北边,现在 rails 非常缓慢.即使只是尝试加载
Record.last(30)
在我尝试加载的动作/控制器中需要 5 分钟以上。
这是我自从涉足 Rails 以来遇到的一个新问题,我以前从未处理过任何大量记录。
电子表格中的数据只有列(日期)和行(指标)。这些记录是视频对象的子对象,所以基本上我只是想按周记录视频的观看指标。我的问题是有超过 1700 个视频,每个视频平均有 90 条记录。
我对明天的想法(这里很晚)是只创建一个日期和视图属性以进行记录,并将日期数组存储在 :dates 中,并将视图数组存储在 :views 中,然后在模型中创建一个日期方法。 zip(views) 并将它们转换为哈希。然后在显示它们以供查看时调用该方法。
我当时正在寻找有关如何正确处理和存储大数据的建议......我做错了什么?
也只是为了说明这一点,此应用程序中没有存储任何视频或图像。只有原始数据。
【问题讨论】:
-
你可以使用客户端/服务器 dbms 来代替 sqlite 吗?
-
经过研究,我实际上发现它只是缺少记录的外键索引。有时我可以调用 60 个视频,其中包含 70-130 多个相关记录,导致我的数据库为每个视频的外键筛选所有 180,000 条记录 60 次。
标签: ruby-on-rails database ruby-on-rails-3 sqlite database-design