查询包含300万个项目的集合(集合大小为15GB
)。
//indexing
{name : 1}
//query
db.getCollection('contacts').find({name :"kello"}).limit(500)
该计算机具有2Cores
和8GB
内存,完成此查询需要 30秒。让客户等待大约半分钟是不可能的。
我可以做些什么来加速它?
是否可以使用包含16GB / 32GB内存的机器并配置mongodb将整个集合缓存到内存中,以便它可以在内存中完成查询?
或者,我应该有几台8GB机器才能拥有分片群集吗?
这些方法会提高查询速度吗?
答案 0 :(得分:0)
您可以创建索引来搜索文档以获得更快的响应。您还可以使用弹性搜索来获得更快的响应。
https://www.compose.com/articles/mongoosastic-the-power-of-mongodb-and-elasticsearch-together/