题
我应用程序创造了条数据,在xml,看起来是这样的:
<resource url="someurl">
<term>
<name>somename</name>
<frequency>somenumber</frequency>
</term>
...
...
...
</resource>
这是我的储存这些"资源"。资源每XML文件。正如许多"术语"每次"的资源"。问题是,我会需要产生大约2万美元,这些资源。我产生的几乎500.000和mac我不是很高兴。所以我的问题是:我应该如何储存这些数据?
- 一个数据库?这将是困难的,因为结构的数据不是固定...
- 可能合并一些资源,为较大的XML文件吗?
- ...?
我不需要改变数据,一旦它的创建。现在我访问特定资源的名字,资源的文件。
任何建议都非常感谢!
解决方案
不是所有的数据库的关系。看看例如 mongodb.它存储的数据作为启动喜欢的对象,类似于您的资源。
一个例子使用的壳体:
$ mongo
> db.resources.save({url: "someurl",
terms: [{name: "name1", frequency: 17.0},
{name: "name2", frequency: 42.0}]})
> db.resources.find()
{"_id" : ObjectId( "4b00884b3a77b8b2fa3a8f77"),
"url" : "someurl" ,
"terms" : [{"name" : "name1" , "frequency" : 17},
{"name" : "name2" , "frequency" : 42}]}
其他提示
如果你无法预测如何数据将是有组织的,也许 http://couchdb.apache.org/ 可以很有趣你。这是一个架构的数据库。
不管怎么说,XML是也许不是最好的选择,为大量的数据。
也许试图JSON或其作出更好的?他们需要较少的空间和更易于分析(我有但是没有经验上使用这些格式,在更大的规模。也许我是错的).
你应该deffinetely有几个资源每XML文件,但仅仅如果你是预期有所有资源toguether在同一时间。如果你只需要发送翰的资源投入任何人,然后继续做出单独的XML。
即使在这种情况下,你可以保持大XML文件,以及产生于需求的规模较小的从原始数据集。
使用数据库等SQLite3会让你有更快的寻求时,更容易操纵的数据,使用SQL语法。
不隶属于 StackOverflow