-
Type: Improvement
-
Resolution: Duplicate
-
Priority: Critical - P2
-
None
-
Affects Version/s: None
-
Component/s: Querying
-
Query Optimization
We should consider the number of documents scanned between different plans being evaluated. At the very least, we should use that to resolve ties between plans.
This is critical for Big Data systems reading data via Spark Connector that partitions data by _id for reading. Example:
For the query
{date:{$gte:A}, _id:{$gte:B}, email:{$gte:C}}
all indexes below will tie, although it is beyond obvious which one should be selected (the difference is of course dramatic when we're talking about TB's of data):
{date:1, _id:1} {date:1, _id:1, email:1} {date:1, _id:1, some_other_email:1}
- is duplicated by
-
SERVER-79400 Implement number of documents tie breaking heuristics
- Closed
- related to
-
SERVER-14423 Plans which fetch different numbers of documents can tie
- Closed