【论文翻译】FLAT: Fast, Lightweight and Accurate Method for Cardinality Estimation

FLAT是一种新的基数估计方法,它结合了独立因子分解和条件因子分解的优点,以实现准确、快速和低存储成本的估计。FLAT提出了一种名为FSPN的图形模型,能够自适应地建模属性的依赖关系。通过FSPN,FLAT在单表和多表查询中实现了高效在线概率计算、离线模型构建和增量更新。实验表明,FLAT在精度、计算速度和存储效率方面优于现有方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FLAT: Fast, Lightweight and Accurate Method for Cardinality Estimation

摘要

查询优化器依赖基数估计确定查询执行计划,核心问题是如何准确紧凑的对丰富的属性联合分布进行建模。尽管已有几十年的研究,现有的方法要么只使用独立的因子分解过于简化模型而导致估计不准确,要么不做任何独立的假设而使用无损条件因子分解过于复杂而导致概率计算缓慢。在本文中,我们提出了一种FLAT的方法,它具有概率计算速度快、模型尺寸轻量化和估计质量准确的特点。FLAT的关键思想是一种新的无监督图形模型,称为FSPN。它同时利用独立因子分解和条件因子分解对不同层次的属性关联进行自适应建模,从而与它们的优点相吻合。FLAT支持在接近线性时间内对基础fspn模型进行高效的在线概率计算,提供有效的离线模型构建,并支持增量式模型更新。它可以估计单个表查询和多表连接查询的基数。大量的实验研究表明,在知名的IMDB基准上,FLAT比现有的CardEst方法有优势:FLAT的精度提高了1-5个数量级,概率计算速度提高了1-3个数量级,存储成本降低了1-2个数量级。我们还将FLAT集成到Postgres中,以执行端到端测试。在基准测试工作负载上,它将查询执行时间提高了12.9%,非常接近使用真正基数的最佳结果14.2%。

一、介绍

基数估计(CardEst)是现代数据库管理系统(DBMS)和分析引擎中查询优化器的关键组成部分[1,47]。它的目的是在SQL查询计划实际执行之前估计其结果大小,因此在生成高质量的查询计划中起着核心作用。
基数估计的主要任务是:怎样把一张表T中的信息支持高效的计算表中满足查询Q的条数。一般有以下两种方法:

  1. 查询驱动:训练一个函数将查询Q映射到一个概率P,所以需要大量执行的查询作为训练样本。只有当将来的查询遵循与训练工作负载相同的分布时,它们才会表现良好。
  2. 数据驱动:学习无监督模型,Pr(T)——表T中属性的联合概率密度函数(PDF)。
基数估计的挑战和状态

从实际需求来看,一种有效的数据驱动CardEst方法应该同时满足三个标准。首先,评估质量必须尽可能准确,因为错误的传播很容易导致优化器选择次优的查询计划[17,51]。其次,由于在优化查询计划[10]时会多次使用CardEst方法,因此概率计算必须是快速的。第三,该模型在存储容量方面更轻。现有的方法在这三个标准之间进行了一些权衡。然而,在建模真实世界的复杂数据时,它们仍然存在一个或多个缺陷。图1说明了当前CardEst方法的性能状态。
在这里插入图片描述
简而言之,这有三个主要的策略在数据表T上构造无监督模型。第一个策略是直接压缩并存储Pr(T)全部的实体,其存储开销难以控制,且有损压缩会严重影响估计精度。第二种策略是基于抽样或者核密度的方法,样本用来粗略的估计概率。对于高维数据,如果没有足够的样本,它们可能是不准确的,或者因为样本量大而导致效率低下。第三种是基于分解的方法,将条件概率模型分解为多个低维的,使他们的适当组合可以近似表示高维。然而,现有的方法往往不能平衡这三个标准。一些方法,包括深度自回归模型和贝叶斯网络可以使用条件因式分解无损的分解。然而,它们的概率计算速度大大降低。其他方法,如直方图[45]和和积网络[16],假设全局和局部独立。当独立假设不成立时,它们的计算效率很高,但估计精度较低。在第2节中,我们将详细分析现有的数据驱动的基数估计方法。

我们的贡献

在本文中,我们更全面地解决了基数估计问题,以满足所有这三个标准。我们观察到:条件分解可以准确地分解PDF,但概率计算是昂贵的,反之亦然,独立分解。为了吸收它们的优点,我们设计了一个新的图形化模型,称为分解和分裂积网络(FSPN)。它的关键思想是根据属性的依赖程度适应性的分解Pr(T)。具体来说,通过条件分解将高相关属性和弱相关属性的联合PDF无损分离,并建立相应的模型。对于高度相关的属性,不同维度的值为相互依赖的,因此,它们的联合PDF可以很容易地建模为多元PDF。对于弱相关属性,将它们的联合PDF分割成多个小区域,每个小区域的属性相互独立。我们证明了FSPN包含直方图、和积网络和贝叶斯网络,并充分利用了它们的优点。
基于FSPN模型,我们提出了一种快速、轻量化、准确的基数估计方法FLAT,如图1所示。在单个表上,FLAT采用了一种有效的离线方法来构建FSPN的结构,并利用FSPN进行了一种高效的在线概率计算方法。FLAT的概率计算复杂度几乎是线性的。此外,FLAT还支持在底层数据更改时快速增量更新FSPN。
对于多表连接查询,FLAT使用了一个新的框架,它比现有的工作更加通用和适用[13,16,19,55]。在脱机阶段,将表划分为几个组,并为每个组构建一个FSPN。在联机阶段,FLAT以一种快速的方式组合子查询的概率以获得最终的结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值