【发布时间】:2013-03-07 19:54:12
【问题描述】:
我在 Mongo 实例中存储了大约 700000 个文档。它在 2GB VPS 上运行,因此无法预期最终速度。我使用 NodeJS 和 Mongoose 来完成这项工作。
文档格式如下:
- 一级密钥
- 一级密钥
- 二级密钥A
- 三级键A
- 二级密钥 B
- 3 级键 1
- 4级键A
- 4级密钥B
- 4级键C
- ...
- 3级键2
- 3级键3
- ...
- 3 级键 1
- 二级密钥A
avgObjSize 是 3191,所以它们不是最大的也不是最小的.. 基本上是短文本列表。
所以我需要做的是将某些值与在所有 3 级键中的 4 级键 C 中找到的所有值进行匹配。棘手的部分是只有在第 4 级键 Cs 中找到 XX% 的匹配值时才会返回文档。
我尝试过 MapReduce,以便一切都发生在 map 函数中,它只发出预处理对象,我尝试返回所有文档和后处理,我尝试使用 map 函数仅输出 4 级键 Cs 和我试过使用 Mongo 自己的函数,比如 $all 等。
问题是一切都非常缓慢。我的意思是每秒不到 500 个文档。该集合只会增长,所以我的问题是我只是错过了如何正确使用 Mongo 的东西,还是像这样的任务这么慢?我阅读了以前的问题,Mongo 中的 MR 有一些问题很慢,但这并不慢,这是在爬行。
【问题讨论】: