MongoDB简单查询与复杂查询性能对比

本文探讨了MongoDB 3.2.1在Linux服务器上的查询性能。通过对比简单查询(针对_id主键)与复杂查询(使用$in操作符)的平均执行时间,结果显示简单查询平均用时0.73ms,而复杂查询为27.26ms,性能差距约为36倍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB服务器信息

  • mongodb版本:3.2.1
  • 服务器操作系统Linux 2.6.32-358.el6.x86_64
  • CPU 双核 Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz

索引信息

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "larvel.Feeds"
    },
    {
        "v" : 1,
        "key" : {
            "user_id" : 1
        },
        "name" : "user_id_1",
        "ns" : "larvel.Feeds"
    },
    {
        "v" : 1,
        "key" : {
            "user_id" : 1,
            "to_userids" : 1
        },
        "name" : "user_id_1_to_userids_1",
        "ns" : "larvel.Feeds"
    }
]

简单查询命令

其中_id为主键,长整型变量,自增。

> db.collection.find({_id:{$in: [8241206,8238108,7881724]}}).sort({_id:-1})

复杂查询命令

该查询返回3条数据,将这三条数据的_id作为简单查询命令$in的输入参数

> db.collection.find({$or:[{to_userids:{$all:[7512854]}, user_id:{$in:[5000000,5349617,6791279,7318333,7322185,7512854]}, privacy:1,shield:{$ne:1}},{user_id:{$in:[5000000,5349617,6791279,7318333,7322185,7512854]},privacy:0,shield:{$ne:1}}, {shield:1,user_id:7512854}]}).sort({_id:-1}).limit(20)

性能对比

两条命令各执行5次,对比平均时间消耗,单位ms

简单:0.73
复杂:27.26

简单查询的性能比复杂查询提高了约36倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值