【发布时间】:2014-09-25 00:38:52
【问题描述】:
我有一个关于如何有效地在 blob 列 (data_type :binary) 中存储和检索大量数据的问题。那里的大多数示例和代码都显示了简单的分配,但对于大量数据来说这不是有效的。例如,从文件中存储数据可能是这样的:
# assume a model MyFileStore has a column blob_content :binary
my_db_rec = MyFileStore.new
File.open("#{Rails.root}/test/fixtures/alargefile.txt", "rb") do |f|
my_db_rec.blob_content = f.read
end
my_db_rec.save
显然,这会将整个文件内容读入内存,然后再将其保存到数据库中。这不是保存 blob 的唯一方法。例如,在 Java 和 .Net 中,有一些方法可以在 blob 列之间进行流式传输,因此您不会将所有内容都拉入内存(请参阅右侧的类似问题)。 rails有类似的东西吗?或者当涉及到 Rails 应用程序时,我们是否仅限于将小块数据存储在 blob 中。
【问题讨论】:
标签: ruby-on-rails database blob