First Past the Post: Evaluating Query Optimization in MongoDB
<|reference_start|>First Past the Post: Evaluating Query Optimization in MongoDB: Query optimization is crucial for every database management system (DBMS) to enable fast execution of declarative queries. Most DBMS designs include cost-based query optimization. However, MongoDB implements a different approach to choose an execution plan that we call "first past the post" (FPTP) query optimization. FPTP does not estimate costs for each execution plan, but rather partially executes the alternative plans in a round-robin race and observes the work done by each relative to the number of records returned.   In this paper, we analyze the effectiveness of MongoDB's FPTP query optimizer. We see whether the optimizer chooses the best execution plan among the alternatives and measure how the chosen plan compares to the optimal plan. We also show how to visualize the effectiveness and identify situations where the MongoDB 7.0.1 query optimizer chooses suboptimal query plans. Through experiments, we conclude that FPTP has a preference bias, choosing index scans even in many cases where collection scans would run faster. We identify the reasons for the preference bias, which can lead MongoDB to choose a plan with more than twice the runtime compared to the optimal plan for the query.<|reference_end|>
@article{tao2024first,
    title={First Past the Post: Evaluating Query Optimization in MongoDB},
    author={Dawei Tao, Enqi Liu, Sidath Randeni Kadupitige, Michael Cahill, Alan
  Fekete, Uwe R"ohm},
    journal={arXiv preprint arXiv:2409.16544},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.16544},
    primaryClass={cs.DB}
}