performance - MongoDB 'count()' 非常慢。我们如何改进/解决它?

我目前正在使用具有数百万条数据记录的 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/

相关文章:

mysql - 将数据库从 mysql 转换为 mongoDb

mongodb - 对 mongodb 中的大量记录进行缓慢分页

mongodb - 服务器在 SASL 身份验证步骤 : Authentication failed

node.js - 为什么建议不要在 Node.js 代码的任何地方关闭 MongoDB 连接?

performance - Mongodb聚合框架比map/reduce更快吗?

node.js - 如何在 Mongoose 中创建和使用枚举

mongodb - 如何替换mongodb文档中的子字符串

mongodb - 将 MongoDB 集合的子集保存到另一个集合

mongodb - 如何在 MongoDB 中重命名集合?

regex - Mongo中不区分大小写的搜索