-
Type:
Bug
-
Resolution: Duplicate
-
Priority:
Major - P3
-
None
-
Affects Version/s: 4.4.6
-
Component/s: Querying
-
None
-
ALL
-
None
-
None
-
None
-
None
-
None
-
None
-
None
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
-