【发布时间】:2015-01-06 13:22:23
【问题描述】:
我刚开始接触 MongoDB。 创建了 1 万个 json 文档。我会搜索:
db.mycollection.find({"somenode1.somenode2.somenode3.somenode4.Value", "9999"}).count()
它给出了正确的结果。操作时间:34 毫秒。一切正常。
现在创建一个包含 100 万个相同文档的数据库。数据库的总大小为 34Gb。MongoDB 将数据库按 2Gb 划分为文件。我重复上述查询以查找相关文档的数量。我等了大约2个小时的结果。内存被占用(16GB)。最后我关闭了Mongo。 系统:Windows 7 x64,16Gb RAM。
请告诉我我做错了什么。生产数据库会更大。
【问题讨论】:
-
你最大的问题是如果你嵌套那么深,你就没有正确地建模你的数据。
-
您需要仔细索引这样的大型集合以获得良好的性能。否则需要将整个 34GB 集合读入内存。
-
Sammaye,我使用这个数据库作为大型 json 文档的存储。我无法更改文档的结构。
-
JohnnyHK,显然你是对的。唯一的方法是使用索引。
标签: mongodb