You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 17:10:02