快速/散装ActiveRecord的创作

我的应用程序从GPS输入存储的位置数据。 当导入GPX文件,用户可以有500 - 10,000 GPS数据点。 现在,我有一个模型,每一个小红点。 它的工作很好,但是在插入它是缓慢的。 30+秒10,000个数据点。 有没有批量插入的任何更好的办法?

所有的时间都花在了SQL方面 - 每个插入快,但万加起来快。 每个用户可能有100个文件,100个用户==长长的插入时间。 不是一次全部课程。

我很乐意改变应用程序的架构,如果这会有所帮助,只是不知道我这里有什么选择。 我只使用GPS数据作为一个单元。 我从来没有搜索集合中的一个记录,所以整个的ActiveRecord是矫枉过正。

我讨厌不得不做一个整体的排队系统只是为了处理这一个愚蠢的插件。

--------------解决方案-------------

使用AR-扩展的导入方法来导入它们全部一次: http://github.com/zdennis/ar-extensions/blob/master/ar-extensions/lib/ar-extensions/import.rb#L49-215

问题是,如果你做一个导入每个记录#save你实际上是创造每行一个INSERT语句,并要求所有模型的验证。 您可以改为建立,推动了所有的数据在一次更大的SQL INSERT语句。

一直在想该结束了,好像我的两个选项一个哈希序列化到数据库中的BLOB,或存放在其他地方。 我没有FS访问,但可以使用S3。

所以,我想我已经改变了我的问题。 对于存储是非常只读创建后100KB的对象,对S3的VS Blob存储的一般原则的任何意见?

我想,这个线程可能涵盖了我要找的现在!

分类:Ruby on Rails的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.351 (s). 10 q(s)