首页 > 其他分享 >openGauss —— 智能优化器之基数估计

openGauss —— 智能优化器之基数估计

时间:2023-08-05 15:31:59浏览次数:31  
标签:优化 数据库 智能 估计 openGauss 多列 基数

openGauss —— 智能优化器之基数估计

现代数据库优化器主要依赖于其内部的代价估计系统,而代价估计最重要的依据就是查询算子的基数,即数据通过算子内查询条件过滤之后剩余的结果行数。因此基数估计技术是影响优化器产生的执行计划性能最关键的技术。学术界和工业界针对基数估计技术研究和发展了几十年,但是由于基数估计需要兼顾准确性和效率,到目前为止其依然是数据库中最难解决的课题之一,被称为是优化器的“Achilles heel”。

当前数据库为了高效估计多列复合查询条件的基数,广泛采用了基于独立性假设的多列数据分布刻画的技术,比如假设X,Y,Z列的联合分布为P(X,Y,Z)=P(X)P(Y)P(Z)。这种方式可以估计出多列查询基数的下界,但是往往会严重偏离真实的基数,导致优化器无法选中正确的执行计划。针对这个问题,数据库领域提出过很多多维数据的分布刻画技术,比如多列直方图,神经网络建模等技术,但在实际落地中遇到很大的性能方面的挑战。

openGauss本次开源的智能基数估计特性采用了一种分布自适应的内核原生多列数据分布刻画方法,其首先利用数据列相关性进行数据分布感知,然后根据分布构建对应的概率图模型**。**

具体来说,图模型中的每个节点都是一列数据,节点之间的边表示节点之间的相关关系。对于相关性不强的数据列,在图模型中也是独立且不相关的,此时的基数估计等价于利用独立性假设进行估计;而如果识别出列之前有强相关性(即一列数据的取值分布依赖于另一列),那么图模型会综合考虑两列的联合分布;而对于更多列的联合分布,为了避免指数级别的空间复杂度增长,openGauss采用了条件独立性假设,比如三列数据X,Y,Z分布相关,但是一旦将Y取值固定,X和Y的分布便称为独立,这时的联合概率计算可以被抽象为P(X,Y,Z)=P(X|Y)P(Y|Z)P(Z)。

openGauss —— 智能优化器之基数估计_数据库

分布模型简要示意图

openGauss针对单列数据不同值个数多的场景对模型进行了进一步的优化,具体优化点有四个:

(1)针对连续浮点型值进行等宽分桶为直方图;

(2)针对符合近似Zipf分布的离散值将低频值合并;

(3)采用NDV近似估计技术对于采样稀疏带来的偏差进行纠正;

(4)使用正态分布对桶内条件分布进行参数化建模。

openGauss利用此方法显著提升了多列复合索引的选择准确率,实现30%以上的端到端的性能提升,实现了兼顾计算性能和估计准确率的基数估计。

该特性是openGauss对数据库内核优化器做的大幅度改动,也是直接利用AI技术改造经典数据库架构的创新尝试,经过实践验证可以解决传统优化器架构无法解决的疑难场景,大幅度提高数据库查询性能。用户可以通过下载最新的openGauss数据库版本进行体验。

标签:优化,数据库,智能,估计,openGauss,多列,基数
From: https://blog.51cto.com/u_16191492/6975995

相关文章

  • openGauss赋能企业核心场景应用 | 华为全联接大会2022专题回顾
    openGauss赋能企业核心场景应用|华为全联接大会2022专题回顾[openGauss](javascript:void(0);)2022-11-0920:10发表于广东今日,华为全联接大会openGauss主题论坛在线上成功举行。openGauss相关专家、伙伴、行业用户围绕openGauss社区进展、openGauss3.1版本技术创新,基于openGau......
  • 【触想智能】工控一体机为什么需要定制?
    工控一体机在工业领域上的应用越来越广泛,在智能化生产车间、城市交通、自助服务终端、商业金融、医疗、安防、军事、政府单位等都可以看到它们的身影。工控一体机作为工业大数据触控中心,在工厂智能化数字转型中起着不可替代的作用。 由于工控一体机对应用环境要......
  • 智能助手——SlideSpeak服务介绍
    在现代职场和学术领域,PowerPoint(PPT)文稿常常扮演着重要的角色。然而,处理大量的PPT文件并从中获取有用的信息可能是一项繁琐的任务。现在,有了SlideSpeak服务,这一问题将变得更加轻松。SlideSpeak是一款开源的人工智能应用,专门为用户处理PowerPoint文件提供帮助。通过使用AI技术,SlideS......
  • openGauss学习笔记-31 openGauss 高级数据管理-索引
    openGauss学习笔记-31openGauss高级数据管理-索引索引是一个指向表中数据的指针。一个数据库中的索引与一本书的索引目录是非常相似的。索引可以用来提高数据库查询性能,但是不恰当的使用将导致数据库性能下降。建议仅在匹配如下某条原则时创建索引:经常执行查询的字段。在连......
  • 北京人工智能工程师职称评定政策出台,明年起一年一评
    By超神经内容提要:北京市人社局近日发布了《北京市工程技术系列(人工智能)专业技术资格评价试行办法》,新增了人工智能专业职称。北京市从事AI专业的小伙伴们,现在起就可以开始着手申报了。关键词:人工智能职称评级11月6日,北京市人力资源和社会保障局发布了《北京市工程技术系列(人......
  • openGauss学习笔记-30 openGauss 高级数据管理-别名
    openGauss学习笔记-30openGauss高级数据管理-别名SQL可以重命名一张表或者一个字段的名称,这个名称为该表或该字段的别名。创建别名是为了让表名或列名的可读性更强。SQL中使用AS来创建别名。30.1语法格式30.1.1列别名语法SELECT{*|[column[AS]output_name,...]}......
  • 智能汽车驾驶演进:虚拟ECU种类与优劣分析
    现代汽车更安全、更舒适、更智能的代价是车载ECU(ElectronicControlUnit)数量的迅速增长,与之相对应的是ECU上规模软件越来越大、软件开发成本在整车制造成本中的占比越来越高。车企可以从规则与方法两个角度入手来解决上述问题:一手抓规则:汽车开放系统架构AUTOSAR;一手抓方......
  • 2023值得关注的人工智能7大发展趋势
    随着人工智能技术的不断创新和应用,我们可以看到人工智能在各个领域的应用越来越广泛。其中,有一些趋势特别值得我们关注。1)深度学习技术的发展深度学习技术在图像识别、语音识别、自然语言处理等领域表现出色,随着硬件计算能力的提升和大量数据的积累,深度学习技术将会在更多领域得......
  • 深圳触觉智能RK3562-赋能10大商业工业应用
    RK3562是一款低功耗、高性价比通用型SoC,集成了四核A53+MaliG52架构,内置1TNPU算力以及13MISP,Antutu跑分达14W+,拥有丰富的外围接口。在解码方面,支持H.2641080P@60fps、H.2654K@30fps;编码方面支持H.2641080P@60fps,此外还有高质量JPEG编解码。图形处理方面,RK3562包含3DGPU,可适......
  • RK3562-触觉智能即将推出相关系列产品
    作为瑞芯微新推出的低功耗、高性价比的通用SOC,在智能商显和工业控制领域又为触觉智能增加了一款强有力的高性价比产品。RK3562是一款专为智能显示设备设计的高性能、低功耗四核应用处理器,其工规版本RK3562J还具备CANFD接口,工作温度可达-40~85℃。深圳触觉智能(Industio)即将推出......