[
{
"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倍。