我目前正在使用具有数百万条数据记录的 MongoDB。我发现了一件很烦人的事情。
当我使用 'count()' 函数来收集少量的查询数据时,它非常快。但是,当查询的数据集合包含上千甚至上百万条数据记录时,整个系统就会变得很慢。
我确保我已为必填字段编制索引。
有人遇到过同样的事情吗?您如何改善这一点?
最佳答案
除了创建正确的索引之外,现在还有另一种优化。
db.users.ensureIndex({name:1});
db.users.find({name:"Andrei"}).count();
如果您需要一些计数器,我建议尽可能预先计算它们。通过使用原子 $inc操作,根本不使用 count({})
。
但是 mongodb 人在 mongodb 上努力工作,因此,根据 jira bug,他们计划在 mongodb 2.1 中进行 count({})
改进.
关于performance - MongoDB 'count()' 非常慢。我们如何改进/解决它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7658228/