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