|
The size of the plan cache for each collection is currently set to 200. This may be too small. For example, if an application generates lots of $all queries, we will consider queries with different numbers of elements in the $all as separate query shapes:
> t.ensureIndex({a: 1})
|
WriteResult({ "nInserted" : 1 })
|
> t.ensureIndex({b: 1})
|
WriteResult({ "nInserted" : 1 })
|
> t.find({a: 1, b: {$all: [1, 2]}})
|
> t.find({a: 1, b: {$all: [1, 2, 3]}})
|
> t.getPlanCache().listQueryShapes()
|
[
|
{
|
"query" : {
|
"a" : 1,
|
"b" : {
|
"$all" : [
|
1,
|
2,
|
3
|
]
|
}
|
},
|
"sort" : {
|
|
},
|
"projection" : {
|
|
}
|
},
|
{
|
"query" : {
|
"a" : 1,
|
"b" : {
|
"$all" : [
|
1,
|
2
|
]
|
}
|
},
|
"sort" : {
|
|
},
|
"projection" : {
|
|
}
|
}
|
]
|
>
|
We may want to increase the size of the cache for this reason in order to accommodate larger numbers of query shapes.
|