我目前使用的MongoDB有数百万条数据记录.我发现了一件很烦人的事.

当我使用"count()"函数收集少量查询数据时,速度非常快.然而,当查询的数据收集包含数千甚至数百万条数据记录时,整个系统会变得非常缓慢.

我确保已为必填字段编制了索引.

有人遇到过同样的事情吗?你如何改进这一点?

推荐答案

现在还有另一种优化方法,那就是创建适当的索引.

db.users.ensureIndex({name:1});
db.users.find({name:"Andrei"}).count();

If you need some counters i suggest to precalculate them whenever it possible. By using atomic $inc operation and not use count({}) at all.

但是mongodb的人在mongodb上努力工作,所以,根据jira bug,他们计划在mongodb 2.1中进行count({})项改进.

Mongodb相关问答推荐

使用mongosh将大型json文件插入到mongo集合中

MongoDB聚合:将文档列表转换为列表

如何从MongoDB集合中获取第一个和最后一个元素?

查找/查找单个深度嵌套文档的多个集合

如何将数组$拉到对象数组下

为什么这个查询可以在MongoDB中使用?

如何使用内部数组中的值更新文档

Mongo聚合的具体格式

定期自动轮换 MongoDb 集合

找到一个用户,然后使用 MongoDB 根据他们的总分获得他们的排名

有谁知道这个错误的修复方法(TypeError: Cannot assign to read only property ‘map’ of object '#')

使用 mgo 从 golang 中的 Mongodb 中 Select 列

Mongoexport 在日期范围内使用 $gt 和 $lt 约束

如何在array.NET驱动程序中的元素属性上创建MongoDB MultiKey索引

MongoDB $or 查询

NoSQL:MongoDB 或 BigTable 并不总是 Available意味着什么

MEAN 堆栈文件上传

MongoDB 按数组元素对文档进行排序

MongoError:failed to connect to server [localhost:27017] on first connect

PyMongo 创建具有 2 个或更多字段的唯一索引