Are We Ready For Learned Cardinality Estimation?
一、简介
针对现有学习方法的限制提出了下列四点贡献:
- 基于学习的方法为静态环境做好准备了吗?
- 基于学习的方法为动态环境做好准备了吗?
- 基于学习的方法什么时候会出错?
- 研究机会
我们在第2节给出了一个关于学习基数估计的调查,并在第3节描述了一般的实验设置。我们在第4节探讨学习的方法是否适合静态环境,在第5节探讨动态环境,并在第6节检查学习的方法何时出错。第7节讨论了未来的研究机会。第8节讨论了多表方案,第9节回顾了相关工作。最后,我们在第10节提出我们的结论。
二、基于学习的基数估计方法调查
2.1问题陈述
考虑一个具有n个属性的关系和在关系R上具有d个谓词的查询:
其中的d个谓词可以是等值谓词和开放范围谓词或者是封闭范围谓词。
2.2分类法
将ML用于CE的想法并不新鲜,最新的方法是采用更先进的最大似然模型如深度神经网络、梯度增强树、和积网络和深度自回归模型。相比之下,我们称传统方法为基于直方图或经典最大似然模型(KDE和贝叶斯网络)的方法。
我们把新方法分为回归和联合分布方法。回归方法(也称为查询驱动方法)将基数估计建模为回归问题,旨在通过特征向量在查询和并行工程结果之间建立映射(查询-》特征向量-》基数估计结果)。联合分布方法(也称数据驱动方法)将基数估计建模为一个联合概率分布估计问题旨在从表中构造联合分布,然后估计基数。下面对这些方法具体介绍:
方法1.回归
方法2:联合分布
方法3:现有实验的局限性
- 许多新学习的方法之间没有直接比较。
- 没有关于使用哪些数据集以及如何生成工作负载的标准。
- 现有的工作集中在静态环境(没有数据更新设置)。
三、实验装置
我们的研究评估了不同设置下的学习基数估计量。我们在这一部分描述了所有实验中使用的一般设置。
评估指标:
我们使用q-error作为我们衡量评估结果质量的准确性指标。q-error是一个对称度量它计算估计值与实际基数不同的因素。
例如,如果一个查询的实际基数是10,估计基数是100。那么error值就为error=max(100,10