MongoDB的count() 统计文档数量非常慢

在MongoDB中,count()函数用于统计文档的数量。但是count()函数通常不会使用索引来计算文档数量,而是扫描集合中的文档来计数。当数据量较大的时候,就不适合使用了。

解决方案:

1、使用聚合框架(aggregation framework)。虽然count()方法方便快捷,但在某些复杂场景中,使用聚合框架可能会更灵活和强大。

2、使用索引,直接find()查询文档,只要命中索引,查询速度比count()效率高很多。如果还需要分页之类的操作,可以在程序中对查询出来的文档集合直接分页。

我的数据库大约有2000万数据,我是用的是索引的方式:

count统计没有命中索引,需要7秒钟

只有find根据条件查询,命中索引,只需要0.2秒

相关推荐
2301_781392527 分钟前
MySQL格式化数据展示——分页查询
java·数据库·mysql·性能优化
va学弟13 分钟前
SQL 进阶知识——多表关联与约束
数据库·sql
一 乐28 分钟前
学生宿舍管理|基于springboot + vue学生宿舍管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·助农电商系统
heze0939 分钟前
sqli-labs-Less-23
数据库·mysql·网络安全
米汤爱学习40 分钟前
Redis-漏洞
数据库·redis·缓存
wWYy.1 小时前
详解redis(7):数据结构List
数据库·redis·缓存
砚边数影1 小时前
时序数据库国产化替代,破局迁移“三不”困局
数据库·时序数据库·kingbase·kingbasees·金仓数据库
专注于大数据技术栈1 小时前
Redis 中 USED 和 RSS
数据库·redis·缓存
一个响当当的名号1 小时前
lectrue8 表索引
数据库
独自破碎E1 小时前
MySQL是怎么实现事务的?
数据库·mysql