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

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

解决方案:

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

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

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

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

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

相关推荐
深耕AI几秒前
【wordpress系列教程】07 网站迁移与备份
运维·服务器·前端·数据库
刘大猫.20 分钟前
XNMS项目-mysql数据库同步
数据库·统计·同步·数据同步·数据统计·数据库同步·业务统计
踢足球092941 分钟前
寒假打卡:2026-01-22
数据库·sql
数巨小码人1 小时前
核心架构深度解析-揭开国产数据库内核的神秘面纱
数据库·架构
薛晓刚1 小时前
MySQL 精度扩展时候的DDL阻塞对比Oracle
数据库
卓怡学长1 小时前
m119在线购书商城系统
java·数据库·spring boot·spring·汽车
存在的五月雨1 小时前
Mysql 事务和锁的一些概念和理解
数据库·mysql
yuankunliu1 小时前
【redis】4、Redis的过期策略和淘汰策略
数据库·redis·缓存
optimistic_chen1 小时前
【Redis系列】Redis缓存
linux·数据库·redis·mysql·缓存·火山引擎
程农1 小时前
java计算机毕业设计婚纱摄影网站(附源码、数据库)
java·数据库·课程设计