Mongodb 存储和访问大量数据

Mongodb 存储和访问大量数据,mongodb,Mongodb,我的应用程序创建的数据片段在xml中如下所示: <resource url="someurl"> <term> <name>somename</name> <frequency>somenumber</frequency> </term> ... ... ... </resource> 这就是我现在存储这些资源的方式。每个XML文件一个资

我的应用程序创建的数据片段在xml中如下所示:

<resource url="someurl">
   <term>
      <name>somename</name>
      <frequency>somenumber</frequency>
   </term>    
   ...
   ...
   ...
</resource>
这就是我现在存储这些资源的方式。每个XML文件一个资源。根据需要,每个资源使用尽可能多的术语。 问题是,我需要生成大约200万个这样的资源。 我已经创造了将近50万的收入,我的mac电脑对此不太满意。 所以我的问题是:我应该如何存储这些数据

数据库?这很难,因为数据的结构不是固定的。。。 也许可以将一些资源合并到更大的XML文件中? ...? 创建数据后,我不需要更改数据。 现在,我正在通过某个资源的文件名访问该资源


非常感谢您的任何建议

并非所有数据库都是关系数据库。例如,看一看。它将您的数据存储为类似json的对象,类似于您的资源

使用shell的示例如下:

$ 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}]}

每个XML文件都应该有多个资源,但前提是您需要同时拥有所有资源。如果您只需要向任何人发送一手资源,那么请继续生成单独的XML

即使在这种情况下,您也可以保留较大的XML文件,并根据需要从原始数据集中生成较小的XML文件


使用像SQLite3这样的数据库可以让您使用SQL语法更快地查找时间和更容易地操作数据。

如果您无法预测数据的组织方式,可能会让您感兴趣。它是一个无模式的数据库

无论如何,XML可能不是处理大量数据的最佳选择


也许尝试JSON或YAML效果更好?它们需要更少的空间,更容易解析,但我没有在更大规模上使用这些格式的经验。也许我错了。

一个典型资源有多少个术语?您应该尝试vtd xml进行大量xml读取。好的,我将尝试mongodb或couchdb。我猜这些可以很好地处理大型数据集?还有,有人能确认我在不同操作系统之间移动数据集不会有任何问题吗?在不知道细节的情况下,我认为mongodb应该很好地处理您的案例。您可以通过api从任何受支持的平台访问mongo,如果您想将数据库移动到另一个平台,我认为您可以复制数据文件。