2012-10-29 62 views
1

我們在社交網絡中有一個用戶模型(mongodb)。有許多與用戶有關的屬性,但並不是每次都需要。所以我應該將它存儲在同一個文檔中,或者創建一個單獨的模型。MongoDB文檔的大小會減慢查詢速度?

將其存儲在同一文檔中會增加文檔的大小。這會影響查詢速度嗎?什麼是最佳實踐。

回答

0

我說,將所有很少訪問的數據抽取到其他文檔中。否則,您的用戶文檔將會變得臃腫,並且會影響性​​能。即使你足夠聰明,不要通過線路傳輸它們(使用find命令中的字段說明),但它們仍處於相同文件中,這會降低完整掃描的性能,並且無需增加工作集大小。

0

然而,你不會暗示每個字段有多少個字段或大小,正如@Sergio所說,大型文檔可以增加您的工作集和LRU所需的內存量。如果需要索引覆蓋很多這些額外字段的複合索引,它還可以增加特定查詢的索引大小,從而增加索引所需的RAM量。

然而,就速度而言,MongoDB完全設計爲可以以最大文檔大小16 meg的各種方式工作,從而爲您正確設置羣集。

所以你的主要問題是你的記憶和空間,如果你考慮到這一點,並以最佳的速度工作,那麼你應該沒問題。正如@Sergio再次表示的那樣,主要的解決方案是去規範化,但是我的主要回答問題是:你多長時間需要同一張表中的所有數據?