MongoDB Atlas M0小集合findAll查询缓慢问题求助
MongoDB Atlas M0 性能异常疑问
我对MongoDB Atlas M0的表现非常困惑,我的集合里只有183条文档:
// 数据大小(字节):2270894 db.getCollection('MyColl').dataSize() // 总大小(字节):2154496 db.getCollection('MyColl').totalSize() // 查询结果:从第1条开始返回20条,耗时11秒878毫秒(执行:402毫秒,获取:11秒476毫秒) db.getCollection("MyColl").find({}).limit(1000);
我的网络连接较差,所以查询的**获取(Fetching)**耗时高是可以理解的。
我用下面的聚合查询统计文档大小(字节):
db.getCollection('MyColl').aggregate([ { "$project": { "name": 1, "object_size": { "$bsonSize": "$$ROOT" } } }, { $sort : { object_size : -1 } } ])
结果如下(按大小降序):
159226 92179 74795 74548 73725 47848 45404 45271
可见大部分文档大小都小于45KB。
但服务器指标显示,用Spring Data JPA从MongoDB获取全部183条文档要花约25秒,这是什么原因?
更奇怪的是:我给{"lastSeenAt": 1}创建了非唯一索引,Spring Repository里有个方法:
List<MyDoc> findAllByLastSeenAtIsNullOrLastSeenAtAfter(long ms);
执行findAll耗时25秒,而命中这个索引的findAllByLastSeenAtIsNullOrLastSeenAtAfter查询居然要35秒。
内容的提问来源于stack exchange,提问作者Capacytron
相关产品推荐
相关产品推荐

