2013-05-11 46 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