使用嵌入對象有什麼好處?MongoDB:使用嵌入對象的好處
在我的實踐中,當我不在其父代之外使用嵌入對象時,它非常罕見。我的意思是comments
是embedded_in post的常見示例:我需要在更新列表中顯示最後一條評論,我需要爲current_user顯示評論等等。所以評論不能嵌入,否則將會是屁股疼痛。
因此,當我需要使用嵌入式對象時,很少有用例。
問題是:爲什麼我應該使用嵌入對象,即使在這些罕見的用例中,嵌入的好處是什麼?
使用嵌入對象有什麼好處?MongoDB:使用嵌入對象的好處
在我的實踐中,當我不在其父代之外使用嵌入對象時,它非常罕見。我的意思是comments
是embedded_in post的常見示例:我需要在更新列表中顯示最後一條評論,我需要爲current_user顯示評論等等。所以評論不能嵌入,否則將會是屁股疼痛。
因此,當我需要使用嵌入式對象時,很少有用例。
問題是:爲什麼我應該使用嵌入對象,即使在這些罕見的用例中,嵌入的好處是什麼?
嵌入對象這是任何nosql數據庫的一大好處。通常嵌入=讀取性能+可伸縮性。舉個例子吧。您可以在問題,答案文件中嵌入問題/答案評論。這意味着當你需要顯示答案/問題時,你不需要加入評論。如果您不需要加入 - 您可以將收藏集移至單獨的計算機以加速您的應用。在關係數據庫中,子對象通常成爲一個單獨的表(除非規範化)。在我的實踐中,有很多情況下我需要嵌入文檔。
但並非所有情況下嵌入良好適合,你確實是在'在某些情況下與屁股疼痛'的真實情況。你不需要嵌入一切!在你的情況下,創建單獨的收集評論或..
在nosql世界還有另一個很好的已知概念:denormalization。
我需要拿出最後意見在更新
好清單,如果你需要最新的更新您可以將最後評論到更新集合快速顯示它。
我需要展示徵求意見CURRENT_USER
好,使嵌入用戶的意見爲用戶對象。
順便說一下,反規範化通常是異步過程,因爲將一個對象寫入多個集合可能會導致寫入性能問題。
希望我的回答能給你一些想法。
是的,它做到了!謝謝:) – fl00r
@ fl00r:不客氣。 –