2013-05-11 47 views
3

我一直在find()查询中看到投影参数,并想知道是否添加它会使事情变得更快。我认为它适用于大型文档,但是如何处理10个左右的小文档呢?投影是否减少查询和/或响应时间?

我正在寻求优化一个项目,其中执行许多小型查询。

+0

这取决于查询是否被覆盖 – Sammaye 2013-05-11 13:01:54

+1

您的测试显示了什么?这将取决于查询和数据,所以回答这个问题的最佳方法是在您的系统上使用您的数据进行尝试。 – WiredPrairie 2013-05-11 14:25:26

+0

我正在开发它,但它最终将有400万个文档。你认为我应该生成这4个密尔集合并对其进行测试吗? O_O – Discipol 2013-05-11 15:42:08

回答

2

您应该分析。在MongoDB shell中,尝试db.collection.find().explain()

如果你有索引,那么它可能会有所帮助。索引查询速度更快,如果您的查询只使用存储在索引本身中的字段,您将有一个covered queryindexOnlycursor.explain())。 投影参数帮助将查询转变为覆盖查询。

如果您比阅读文档更频繁地插入文档,然后it might not be a good idea to use indexes,但您应该始终对其进行配置。

+0

ty为完整的参考答案。 – Discipol 2013-05-11 16:02:36

+0

不客气 – vinipsmaker 2013-05-11 16:19:47