同一个SQL,就是把字段的条件由IsDraft: 2变成IsDraft: 1,会变得特别慢。IsDraft: 2的查询结果有20万条。IsDraft: 2的查询结果是0条。
查询快的SQL,IsDraft: 2特别快
db.getCollection(gather).aggregate([
{
$match: {
BatchID: 'ce1001b7-75b8-4476-9678-894fe4856796',
SchoolID: '8a2d38bc-4aff-424f-9520-30c1cf8ec50c',
GiveScore: { '$gte': 0, '$lte': 200 }
}
},
{
$match: { IsDraft: 2, IsStart: true }
},
{
$count: "count"
}
], {allowDiskUse: true}).toArray();
查询快的SQL,IsDraft: 1特别慢
db.getCollection(gather).aggregate([
{
$match: {
BatchID: 'ce1001b7-75b8-4476-9678-894fe4856796',
SchoolID: '8a2d38bc-4aff-424f-9520-30c1cf8ec50c',
GiveScore: { '$gte': 0, '$lte': 200 }
}
},
{
$match: { IsDraft: 1, IsStart: true }
},
{
$count: "count"
}
], {allowDiskUse: true}).toArray();
xiaoxu 更改状态以发布
MongoDB中文社区