我必须在MongoDB v3.4.1中使用Views(MongoDB经常升级到最新版本)。
我有两种选择来创造终极观点。
但是,将使用高容量集合创建视图。
由于上述情况,我想知道RAM中的视图占用了多少空间。它与收藏品相同还是更少?
答案 0 :(得分:0)
除了用于定义视图的少量元数据外,他们不会自己消耗任何内存。
当您对视图执行查询时,它将获取相关的集合数据, 反过来可能需要存储引擎将更多数据带入RAM,如果有问题的数据刚刚打开磁盘直到那时。
// Example view creation
db.runCommand ( {
create: "managementFeedback",
viewOn: "survey",
pipeline: [ { $project: { "management": "$feedback.management", department: 1 } } ]
} )
// ---------
db.managementFeedback.find() //Will bring a certain amount of document data into memory, if it wasn't already there.
db.survey.aggregate([ { $project: { "management": "$feedback.management", department: 1 } } ]) //Will bring exactly the same document data into memory
但这完全符合预期。与使用相同管道运行聚合命令相比,使用视图不会消耗更多或更少的内存。