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

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

时间:2024-10-29 10:52:43浏览次数:3  
标签: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/18512135

相关文章

  • GaussDB 24
    GaussDB介绍华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定......
  • GaussDB技术解读——GaussDB架构介绍之OM运维管理关键技术方案
    ​GaussDBKernelV5OM运维管理关键模块如下。OM运维主要功能有:安装升级节点替换扩容、缩容自动告警巡检备份恢复、容灾日志分析系统在华为云的部署模式下,OM相关组件部署示意图如下:图7华为云OM运维管理用户登录华为云Console,访问GaussDBKernelV5的管控页面,输入......
  • SpringBoot汽车销售管理系统1cv5c 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:销售员,客户,销售订单,品牌,车系,汽车库存,汽车入库,财务报表开题报告内容一、研究背景随着汽车市场的不断扩大和竞争的日益激烈,汽车销售管理系统的需......
  • GaussDB如何创建修改数据库和数据表
    一、背景GaussDB是一款由华为开发的企业级分布式数据库,具有高性能、高可用、高可靠性等特点,广泛应用于各种业务场景。本指南将介绍如何在GaussDB中创建数据库和数据表,修改表结构,并添加约束。二、创建数据库和数据表创建数据库在GaussDB中创建数据库可以使用CREATEDATA......
  • 华为GaussDB数据库包括:事务性(OLTP)数据库、分析型(OLAP)数据库和混合负载(HTAP)数据库
    华为GaussDB数据库包括:事务性(OLTP)数据库、分析型(OLAP)数据库和混合负载(HTAP)数据库。这里需要解释下OLTP、OLAP、HTAP之间的区别,这也是数据库最基本的内容。据库系统一般分为两种类型:一种是面向前台应用的,应用比较简单,但是重吞吐和高并发的OLTP类型;一种是重计算的,对大数据集进行统......
  • GaussDB技术解读——GaussDB架构介绍之集群管理层(CM)关键技术方案
    GaussDBKernelV5集群管理层关键模块如下。图4集群管理层组件设计图CM组件提供了四种服务CMAgent,CMServer,OMMonitor,cm_ctl,与各类实例服务组件(CN,DN,GTM等)一起构成了整个数据库集群系统。cm_ctl通过命令行执行集群的启动、停止、状态查询、主备倒换、备机重......
  • GaussDB技术解读——GaussDB架构介绍之全局事务管理层(GTM)关键技术方案
    GTM仅处理全局时间戳请求,64位CSN递增,几乎都是CPU++和消息收发操作。不是每次都写ETCD,而是采用定期持久化到ETCD里,每次写ETCD的CSN要加上一个backup_step(100w),一旦GTM故障,CSN从ETCD读取出来的值保证单调递增。当前GTM只完成CSN++,预估可以支持200M/s请求。GTM处理......
  • GaussDB技术解读——GaussDB架构介绍之数据持久化存取层(DataNode)关键技术方案
    数据持久化存取层(DataNode)关键技术方案Datanode节点主要负责数据的持久化和快速写入、读取。数据持久化采用物理日志wal,事务提交wal刷盘,对外提供逻辑日志功能,反解析物理日志为SQL逻辑日志。图1datanode数据持久化Astore:存储格式为追加写优化设计,其多版本元组采用新、老版......
  • GaussDB企业级AI-Native分布式数据库
    华为GaussDB是一个企业级AI-Native分布式数据库。GaussDB采用MPP(MassiveParallelProcessing)架构,支持行存储与列存储,提供PB(Petabyte,2的50次方字节)级别数据量的处理能力。华为Gauss数据库是全球首款AI-Native数据库,能够同时支持X86、ARM、GPU、NPU等异构计算。数......
  • GaussDB火焰图分析
    问题描述CPU利用率是衡量系统负载和健康度的重要指标之一,系统在运行过程中时常发生CPU利用率高的情况。在分析性能问题时,可通过火焰图查看CPU耗时,了解瓶颈在哪里。问题现象部分sql执行速度不符合预期。告警慢sql告警。cpu使用率高告警。数据库整体运行慢。业务影响业务......