[论文解读] Adaptive Cardinality Estimation
本文提出一种基于机器学习的自适应选择度估计方法,以改进关系数据库中的基于代价的查询优化。通过利用先前执行查询的执行统计信息,该方法动态优化选择度预测,显著降低估计误差,并在复杂查询上将查询性能提升达数十倍。
In this paper we address cardinality estimation problem which is an important subproblem in query optimization. Query optimization is a part of every relational DBMS responsible for finding the best way of the execution for the given query. These ways are called plans. The execution time of different plans may differ by several orders, so query optimizer has a great influence on the whole DBMS performance. We consider cost-based query optimization approach as the most popular one. It was observed that cost-based optimization quality depends much on cardinality estimation quality. Cardinality of the plan node is the number of tuples returned by it. In the paper we propose a novel cardinality estimation approach with the use of machine learning methods. The main point of the approach is using query execution statistics of the previously executed queries to improve cardinality estimations. We called this approach adaptive cardinality estimation to reflect this point. The approach is general, flexible, and easy to implement. The experimental evaluation shows that this approach significantly increases the quality of cardinality estimation, and therefore increases the DBMS performance for some queries by several times or even by several dozens of times.
研究动机与目标
- 解决基于代价的查询优化中选择度估计不准确这一关键问题,该问题严重损害数据库性能。
- 克服传统方法(如基于直方图的估计)以及System R中属性独立性假设的局限性。
- 开发一种灵活且通用的方法,利用机器学习适应工作负载和数据变化。
- 提高查询优化器的准确性,并减少因选择度估计不佳导致的性能下降。
提出的方法
- 使用先前执行查询的执行统计信息作为训练数据,训练用于选择度预测的机器学习模型。
- 将选择度估计建模为监督式机器学习问题,其中特征源自查询谓词和表统计信息。
- 采用k-最近邻(k-NN)作为核心学习算法,并采用固定内存实现,以支持大规模、流式查询工作负载。
- 基于列选择度、连接条件和谓词结构构建特征空间,以捕捉数据依赖关系。
- 将模型集成到查询优化器中,在计划选择阶段重新估计选择度,从而提高代价模型的准确性。
- 通过使用新执行统计信息(尤其是中断或性能不佳计划的统计信息)对模型进行再训练或更新,支持动态适应。
实验结果
研究问题
- RQ1当前基于代价的查询优化器在选择度估计不佳时,其失败程度如何,特别是在存在相关或依赖谓词的情况下?
- RQ2基于历史查询执行统计信息训练的机器学习模型能否显著提升选择度估计的准确性?
- RQ3在复杂的真实世界工作负载下,所提出的自适应方法与传统基于统计的方法相比,性能表现如何?
- RQ4构建适用于工业级DBMS的可扩展、自适应选择度估计系统时,关键的设计权衡是什么?
- RQ5基于中断执行统计信息的查询重优化能否进一步提升学习效果和计划质量?
主要发现
- 基于属性独立性假设的标准查询优化器在复杂查询中常选择比最优计划慢数个数量级的执行计划。
- 所提出的自适应选择度估计方法显著降低了选择度估计误差,并能选择更接近最优的执行计划,在复杂查询上实现高达数十倍的性能提升。
- 该方法在复杂查询上表现尤为出色,即使查询本身计算开销不大,传统优化器也因选择度估计错误而失败。
- 在TPC-H、TPC-DS、JOB和StrongCor基准测试上的实验评估表明性能显著提升,尤其在高复杂度查询工作负载中改善最为明显。
- 利用部分执行或中断查询的统计信息(尤其是严重低估选择度的查询)可加速模型学习,并避免完整执行次优计划。
- 基于k-NN且采用固定内存存储的方法可实现可扩展的、实时的动态适应,尽管动态适应机制仍是开放的研究挑战。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。