-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: 4.4.6
-
Component/s: Querying
-
None
-
ALL
Hiding an index can result in cached plans no longer being accessible via the $planCacheStats pipeline stage.
db.foo.drop(); db.foo.insert({ a: 1, b: 1 }); db.foo.createIndex({ a: 1 }); db.foo.createIndex({ a: 1, b: 1 }) var q = { a: { $gte: 1 }, b: 1 }; db.foo.count(q); var key = db.foo.explain().count(q).queryPlanner.planCacheKey; //=> E7DCAC4F db.foo.aggregate([{ $planCacheStats: {} }, { $match: { planCacheKey: key } }, {$project: { plan: "$cachedPlan.indexName" } } ]) //=> { "plan" : "a_1_b_1" } db.foo.hideIndex({ a: 1 }) db.foo.count(q); var key2 = db.foo.explain().count(q).queryPlanner.planCacheKey; //=> E7DCAC4F db.foo.aggregate([{ $planCacheStats: {} }, { $match: { planCacheKey: key2 } }, {$project: { plan: "$cachedPlan.indexName" } } ]) //=> no results db.foo.unhideIndex({ a: 1 }) db.foo.count(q); var key3 = db.foo.explain().count(q).queryPlanner.planCacheKey; //=> E7DCAC4F db.foo.aggregate([{ $planCacheStats: {} }, { $match: { planCacheKey: key3 } }, {$project: { plan: "$cachedPlan.indexName" } } ]) //=> { "plan" : "a_1_b_1" }
- duplicates
-
SERVER-13341 Cache single solution query plans
- Backlog