返回

连接基数估计的新框架——FactorJoin

后端

FactorJoin:连接查询基数估计的新框架

导语

连接查询是关系数据库系统中最为基础和重要的操作之一,其查询性能很大程度上取决于连接操作的性能。而连接操作的性能又很大程度上取决于连接查询的基数估计的准确性。因此,连接查询的基数估计一直是数据库研究领域的重要课题。

传统的连接查询基数估计方法主要有两类:基于连接直方图的方法和基于机器学习的方法。基于连接直方图的方法通过预先计算和存储连接表的直方图来估计连接查询的基数,这种方法简单高效,但准确性较差。基于机器学习的方法通过训练模型来估计连接查询的基数,这种方法准确性较高,但需要针对不同的连接查询手工设计不同的模型,建模过程复杂。

本文提出一种全新的连接查询基数估计框架FactorJoin,它将传统的连接直方图和基于机器学习的单表基数估计方法巧妙地集成进因子图中。FactorJoin不需要针对各个连接查询手工设计独立的基数估计模型,只需要学习各个单表的数据分布就能进行基数估计,大幅简化基数估计的建模过程。

FactorJoin的框架

FactorJoin的框架如下图所示:

[图片]

FactorJoin的框架主要包括以下几个部分:

  • 单表基数估计模块:该模块负责学习各个单表的数据分布,并估计各个单表的基数。
  • 连接直方图模块:该模块负责计算和存储连接表的直方图。
  • 因子图模块:该模块将单表基数估计模块和连接直方图模块集成进因子图中,并通过因子图的推理来估计连接查询的基数。

FactorJoin的算法

FactorJoin的算法主要包括以下几个步骤:

  1. 单表基数估计:该步骤使用机器学习方法来学习各个单表的数据分布,并估计各个单表的基数。
  2. 连接直方图计算:该步骤计算和存储连接表的直方图。
  3. 因子图构建:该步骤将单表基数估计模块和连接直方图模块集成进因子图中。
  4. 因子图推理:该步骤通过因子图的推理来估计连接查询的基数。

FactorJoin的优势

FactorJoin的主要优势在于:

  • 准确性高:FactorJoin将传统的连接直方图和基于机器学习的单表基数估计方法巧妙地集成进因子图中,综合了两者的优点,因此其准确性很高。
  • 建模简单:FactorJoin不需要针对不同的连接查询手工设计不同的基数估计模型,只需要学习各个单表的数据分布就能进行基数估计,大幅简化基数估计的建模过程。
  • 扩展性好:FactorJoin的框架非常灵活,可以很容易地扩展到新的连接类型和新的数据类型上。

FactorJoin的应用

FactorJoin可以应用于各种场景,包括:

  • 连接查询优化:FactorJoin可以用于优化连接查询的执行计划,从而提高查询性能。
  • 数据仓库设计:FactorJoin可以用于设计数据仓库的模式,从而提高数据仓库的查询性能。
  • 并行查询处理:FactorJoin可以用于并行查询处理,从而提高查询的吞吐量。

总结

FactorJoin是一种全新的连接查询基数估计框架,它将传统的连接直方图和基于机器学习的单表基数估计方法巧妙地集成进因子图中。FactorJoin具有准确性高、建模简单、扩展性好的特点,可以应用于各种场景。