首页 > 数据库 >GaussDB数据库技术解读——高性能关键技术

GaussDB数据库技术解读——高性能关键技术

时间:2024-12-18 16:55:27浏览次数:4  
标签:20 关键技术 GaussDB t2 t1 c2 c1 优化 数据库

GaussDB数据库技术解读——高性能关键技术

内容概要:本章节介绍GaussDB中实现的高性能关键技术,内容涉及优化器、执行器、分布式数据库、存储引擎等多个方面。

目的:通过对GaussDB数据库关键高性能技术的学习,能够让读者更加清晰的理解数据库内核哪些优化是性能关键点同时也为类似的应用系统实现提供方法论和最佳实践。

查询重写RBO

在数据库里RBO基于规则的优化一般指查询重写技术,按照一系列关系代数表达式的等价规则,对查询的关系代数表达式进行等价转换,从逻辑上减少执行的总量从而提高查询执行效率,例如,通过条件的推导得出非必要的表扫描、避免非必要的计算表示等。

在这里插入图片描述
查询重写RBO优化是非常重要的一种逻辑优化手段,通常应用和实施在查询优化过程的前端,将一些肯定能够优化的场景进行优化,RBO优化结束后进行物理优化,以下以常用的几种重写优化进行介绍:

Example 1:谓词化简优化Predicate Simplification

使用谓词查询条件的可满足性Satisfiability (SAT)&可传递性Transitive Closure(TC)对查询进行化简,a.w.k SAT-TC,假设有t1,t2表,他们的定义分别为:T1(c1 int, c2 int);,T2(c1 int, c2 int check (c2 < 30));,则原查询:

SELECT t1.c1,t1.c2, t2.c1, t2.c2FROM t1 JOIN t2 ON t1.c2 = t2.c2WHERE t1.c2 > 20

可优化为:

SELECT dt1.c1,dt1.c2, dt2.c1, dt2.c2FROM (select c1,c2 from t1 where t1.c2 between 20 and 30) as dt1,(select c1,c2 from t2 where t2.c2 between 20 and 30) as dt2WHERE dt1.c2 = dt2.c2;

说明:通过谓词逻辑可以发现当前查询中可以一次实施TC->SAT->TC优化策略。

step1: TC优化:内连接关联条件t1.c2 = t2.c2 && t1.c2 > 20可以得出t2.c2 > 20

step2: SAT优化:t2.c2列上创建有check-constraint可以得出t2.c2 BETWEEN 20 AND 30

step3: TC优化:同理得出t1.c2 BETWEEN 20 AND 30到此t1,t2在关联之前就可以最大限度减小处理的元组数,达到提升性能的目的,以下是其他SATTC例子:

A=B AND A=C --> B=CA=5 AND A=B --> B=5A=5 AND A IS NULL --> FALSEA=5 AND A IS NOT NULL --> A=5X > 1 AND Y > X --> Y >= 3X IN (1,2,3) AND Y=X --> Y IN (1,2,3)

标签:20,关键技术,GaussDB,t2,t1,c2,c1,优化,数据库
From: https://www.cnblogs.com/xiaoxu0211/p/18615357

相关文章

  • GaussDB数据库技术解读——分布式执行
    GaussDB数据库技术解读——分布式执行分布式执行主要为分布式数据库提供一套完备的支撑数据跨节点交换,协同计算的计算框架,能够支撑位于不同地点的许多计算分片机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库,数据的分布式切片方式从大的分类上......
  • GaussDB技术解读——高性能之查询处理流程
    GaussDB技术解读——高性能之查询处理流程查询处理流程查询在经典数据库实现中需要依次进行以下4个环节,(1)查询解析:对用户输入查询进行编译,把查询从文本方式翻译成执行引擎可以识别的语句。(2)查询优化:对查询的进行基于规则的逻辑优化RBO和基于代价CBO的物理优化(3)查询执行:将查询执......
  • GaussDB技术解读高性能——物理优化CBO
    GaussDB技术解读高性能——物理优化CBO在优化器处理完RBO的优化以后,路径的选择往往不能通过实现制定好的规则进行变换,而是需要根据数据的分布(统计信息)情况来对查询执行路径进行评估,从可选的路径中选择一个执行代价最小的路劲进行执行,例如是否选择索引SeqScanvs.IndexScan、选择......
  • GaussDB技术解读高性能——数据分区与分区剪枝
    GaussDB技术解读高性能——数据分区与分区剪枝在数据系统中,数据分区是在一个实例内部按照用户指定的策略对数据做进一步的数据切分,将表按照指定规则划分为多个数据互不重叠的部分。从数据分区的角度来看是一种水平分区(horizontalpartition)分区策略方式。分区表增强了数据库应用......
  • GaussDB技术解读高性能——计划缓存计划技术
    GaussDB技术解读高性能——计划缓存计划技术数据库接收到SQL语句后通常要经过如下处理:词语法解析->优化重写->生成执行计划->执行,从开始解析到计划生成其实是一个比较耗时的过程,一个常用的思想就是将计划缓存下来,当执行到相似的SQL时,从而可以复用计划,跳过SQL语句生成执行计划的......
  • GaussDB技术解读高性能——分布式执行框架
    由于GaussDB采用的是无共享Shared-nothing的架构,由众多独立且互不共享CPU、内存、存储等系统资源的逻辑节点组成。在这样的系统架构中,业务数据被分散存储在多个物理节点上,数据分析任务会被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据......
  • GaussDB技术解读高性能——分布式优化器
    GaussDB技术解读高性能——分布式优化器分布式数据库场景下表分布在各个节点上,数据的本地性DataLocality是分布式优化器中生成执行计划时重点考虑的因素,基于ShareNothing的分布式数据库中有一个很关键概念就是“移动数据不如移动计算”,之所以有数据本地性就是因为数据在网络中......
  • 数据库应用题库
    《数据库应用》一、选择题1.DBMS的全称是(C )A.数据库系统B.业务管理系统C.数据库管理系统D.数据库信息系统2.MySQL是(D )。A.数据库系统 B.数据库C.数据库管理员  D.数据库管理系统3.目前,主流的模型数据库系统是(A )A.关系模型数据库系统B.网状模型数据库系统C.层......
  • Springboot家庭理财分析系统nxad6(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表家庭成员,支出信息,收入信息,股票信息,债权信息,资产信息,预警通知,公告信息,收入分类,支出分类,基金信息开题报告内容一、研究背景随着社会经济的发展和生活成......
  • Springboot家私导购系统5z229(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,家私类别,家私信息开题报告内容一、课题背景与意义随着互联网技术的飞速发展和电子商务的普及,消费者的购物习惯发生了显著变化。特别是在家居家具领域,消费......