制作10000个不同的ActiveRecord SQLite DB连接有任何可预见的问题吗?

时间:2013-01-12 06:40:53

标签: ruby-on-rails sqlite rails-activerecord

我有大约10000个文档的集合,每个文档包含几个SQLite DB。 (*)

我正在考虑根据文档标识符自动对我为这些DB中包含的表编写的ActiveRecord模型进行子类化,这样我就可以分别对每个类调用establish_connection。

class Document < ActiveRecord::Base
end

class Document_xyz < Document
  establish_connection(.../xyz.sqlite)
end

这是可行的,还是应该尝试以某种方式将所有数据库合并在一起(可能是通过在表名上添加ID,或者作为列(?)),这样我就可以建立一个连接?

*注意:我无法更改此文件设置,因为它在其他地方使用,但我正在创建一个Web界面,所以我正在研究如果DB这样处理这么大的数字的可能性。

2 个答案:

答案 0 :(得分:0)

这样做可能需要巨大的资源。

您可以编写一个rake任务,将数据库转换为json模板,然后您可以操作数据但是您认为合适,而不必过多关注服务器资源。

您确实应该请求供应商提供sqlite数据库的json表示。

答案 1 :(得分:0)

您可以根据需要为每个模型打开任意数量的数据库连接。也就是说,每个模型只有一个连接可以更好,更容易编码和使用。但是,许多Connections将占用您机器的大量资源,因此...遍历所有不同的数据库,grep其内容,并将其全部写入单个数据库文件(不要忘记建立有效的关系,如果可能)。

之后,使用数据库的速度应该非常快。简单。