论文导读 | 数据库系统中基于机器学习的基数估计方法

背景

基数估计任务是在一个查询执行之前预测其基数,基于代价的查询优化器(Cost Based Optimizer)将枚举所有可能的执行计划,并利用估计的基数选出期望执行代价最小的计划,从而完成查询优化的任务。

然而,传统的基数估计方法,例如PostgreSQL基于直方图(Histogram)的方法,往往采用简单的独立性假设、均匀假设,用有限的统计信息来预测查询的基数,导致了较大的基数估计误差。事实上,现实中的数据是复杂的、富有关联的,传统的基数估计方法往往不能刻画数据的复杂分布,产生巨大的基数估计误差从而诱发大量的次优计划甚至灾难性计划。

为此,研究者们近年来将目光投放于基于机器学习的查询优化方法,利用机器学习的基数,来完成基数估计这个传统方法难以很好解决的问题。现有的基于机器学习的方法主要可以分为如下两大类:

  • **Query-driven:即查询驱动。**直接学习查询特征到其基数的映射,i.e. $ f_\Theta(Q) \to \text{Card} 。通常是一个回归模型,但需要大量的查询及其真实基数作为训练集 。通常是一个回归模型,但需要大量的查询及其真实基数作为训练集 。通常是一个回归模型,但需要大量的查询及其真实基数作为训练集{ <Q, \text{Card}>}$。
  • **Data-driven:即数据驱动。**与查询驱动的思想不同,数据驱动并不直接学习查询的基数,而是学习底层数据的分布,并用这个分布来回答查询的基数。例如,一个具有属性 { A 1 , A 2 , ⋯   , A n } \{A_1, A_2, \cdots, A_n\} { A1,A2,,An}的表 T T T,可以看作是定义在 Π i = 1 n d o m ( A i ) \Pi_{i=1}^n dom(A_i) Πi=1ndom(Ai) 上的多元概率分布 P T ( A 1 , A 2 , ⋯   , A n ) P_T(A_1, A_2, \cdots, A_n)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值