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

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倍。

你可能感兴趣的:(mongodb)