数据库查询优化器:理想与现实的差距
2025-07-04
数据库查询优化器旨在选择最优查询计划,但其依赖于成本估算,而估算又依赖于选择性和基本资源成本(I/O、CPU等)。本文通过实验揭示了优化器经常出错的情况。实验表明,对于简单的SELECT查询,优化器在不同数据分布下选择查询计划的准确性差异巨大。均匀数据集下,位图扫描通常优于索引扫描;而在其他数据分布下,优化器则更容易选择次优的索引扫描。这说明,即使是简单的查询,优化器的成本模型也难以完美适应各种数据分布和硬件环境。虽然基于成本的规划是目前最好的方法,但提升其鲁棒性和适应性仍然是一个重要的挑战。
开发