mongodb利用索引对find结果排序(sort)
最近线上有个接口超时报警,排查发现是查询MongoDB的时候比较慢(平均耗时1s以上)。文档结构很简单:
{
"_id" : NumberLong(1214789),
"created_at" : ISODate("2019-02-21T16:08:44.337Z"),
"updated_at" : ISODate("2019-02-21T16:08:44.337Z"),
"cid" : 158865,
"uid" : NumberLong(1024654707),
"object_id" : "",
"random" : 163595854,
"participation_num" : 1
}
已有索引:
{"_id":1}
{"uid":1}
{"cid":1}
{"cid":1,"uid":1}
接口里的查询转换成查询语句为:
db.record.find({
"cid":158865,
"is_del": {
"$ne": true
}
}).sort({"_id": -1}).limit(10)
数据量100W