mongodb 百万_MongoDB查询性能超过500万条记录

我们最近为我们的一个主要系列收录了> 2百万条记录,现在我们开始对该系列的主要性能问题感到不满。

它们在集合中的文档有大约8个字段,您可以使用UI过滤,结果应该按记录处理的时间戳字段排序。

我已经添加了几个复合索引与过滤的字段和时间戳

例如:

db.events.ensureIndex({somefield: 1, timestamp:-1})

我也添加了几个索引,同时使用几个过滤器,希望实现更好的性能。但一些过滤器仍然需要很长的时间来执行。

我确保使用解释查询确实使用我创建的索引,但性能仍然不够好。

我想知道如果分片是现在的方式去,但我们很快就会开始有每天约100万新的记录在该集合..所以我不知道如果它会扩展好..

编辑:查询的示例:

> db.audit.find({'userAgent.deviceType': 'MOBILE', 'user.userName': {$in: [[email protected]']}}).sort({timestamp: -1}).limit(25).explain()

{

"cursor" : "BtreeCursor user.userName_1_timestamp_-1",

"isMultiKey" : false,

"n" : 0,

"nscannedObjects" : 30060,

"nscanned" : 30060,

"nscannedObjectsAllPlans" : 120241,

"nscan

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值