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

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

解决方案:

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

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

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

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

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

相关推荐
百***812713 小时前
【HTML+CSS】使用HTML与后端技术连接数据库
css·数据库·html
6***34914 小时前
MySQL项目
数据库·mysql
木井巳14 小时前
【MySQL数据库】数据库基础
数据库·mysql
Wang's Blog14 小时前
MySQL: 查询全流程深度解析与性能优化实践指南
数据库·mysql·性能优化
一 乐14 小时前
宠物管理|宠物共享|基于Java+vue的宠物共享管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·springboot·宠物
Wang's Blog14 小时前
MongoDB小课堂: 高级查询操作符与游标管理综合指南之深度整合逻辑操作符、字段处理、数组查询与游标控制的最佳实践
数据库·mongodb
大侠课堂14 小时前
单片机经典面试题50道
arm开发·单片机·嵌入式硬件·mongodb
垂金烟柳14 小时前
MongoDB GridFS 历史数据自动化清理实践
数据库·mongodb·自动化
白露与泡影14 小时前
MySQL中的12个良好SQL编写习惯
java·数据库·面试
foundbug99914 小时前
配置Spring框架以连接SQL Server数据库
java·数据库·spring