openGauss企业级增强特性--向量化执行和行列混合引擎
向量化执行和行列混合引擎
在大宽表,数据量比较大、查询经常关注某些列的场景中,行存储引擎查询性能比较差。例如气象局的场景,单表有200~800个列,查询经常访问10个列,在类似这样的场景下,向量化执行技术和列存储引擎可以极大的提升性能和减少存储空间。
-
向量化执行
标准的迭代器模型如图1所示。控制流向下(下图实线)、数据流向上(下图虚线)、上层驱动下层(上层节点调用下层节点要数据)、一次一元组(下层节点每次只返回一条元组给上层节点)。
而向量化执行相对于传统的执行模式改变是对于一次一元组的模型修改为一次一批元组,配合列存特性,可以带来巨大的性能提升。
图 1 向量化执行引擎

-
行列混合存储引擎
openGauss支持行存储和列存储两种存储模型,用户可以根据应用场景,建表的时候选择行存储还是列存储表。
一般情况下,OLAP类业务场景(范围统计类查询和批量导入操作频繁,更新、删除、点查和点插操作不频繁,表的字段比较多,即大宽表,查询中涉及到的列不是很多)下,适合列存储,OLTP类业务场景(点查、点插、删除、更新频繁,范围统计类查询和批量导入操作不频繁,表的字段个数比较少,查询大部分字段)下,适合行存储。
如图2所示,行列混合存储引擎可以同时为用户提供更优的数据压缩比(列存)、更好的索引性能(列存)、更好的点更新和点查询(行存)性能。
图 2 行列混存引擎

当前列存储引擎有以下约束:
-
DDL仅支持CREATE/DROP/TRUNCATE TABLE的功能。
兼容分区的DDL管理功能(如:ADD/DROP/MERGE PARTITION,EXCHANGE功能)。
支持CREATE TABLE LIKE语法。
支持ALTER TABLE的部分语法。
其他功能都不支持。
-
DML支持UPDATE/COPY/BULKLOAD/DELETE。
-
不支持触发器,不支持主外键。
-
支持Psort index、B-tree index和GIN index,具体约束参见《开发者指南》中“SQL参考 > SQL语法 > CREATE INDEX”章节。
-
-
列存下的数据压缩
对于非活跃的早期数据可以通过压缩来减少空间占用,降低采购和运维成本。
openGauss列存储压缩支持Delta Value Encoding、Dictionary、RLE 、LZ4、ZLIB等压缩算法,且能够根据数据特征自适应的选择压缩算法,平均压缩比7:1。压缩数据可直接访问,对业务透明,极大缩短历史数据访问的准备时间。
相关推荐
openGauss 特性描述 01.pdf
- 向量化引擎:通过将数据打包为向量,提升处理速度和效率。 - 行列混合存储:结合行存储和列存储的优点,优化存储和查询速度。 - 自适应压缩:在保证性能的同时,通过压缩减少存储空间的占用。
OpenGauss数据库新特性概述.pptx
通过数据库自治运维,实现软硬件故障的自诊断和自定位,利用AI技术进行参数自调优和执行引擎智能调度。同时,OpenGauss将进一步加强安全特性,如透明加密、权限管理、访问控制,以及密态计算和数据脱敏。
OpenGauss数据库新特性概述.pdf
AI-Based Optimizer将实现数据库自治运维,通过AI技术进行参数自调优和执行引擎智能调度。此外,自诊断和自愈能力将显著提升系统的稳定性,包括软硬件故障的自动识别和恢复。
openGauss 5.0.0版本特性介绍.pdf
openGauss 5.0.0版本特性介绍openGauss 5.0.0版本作为面向数字基础设施的开源数据库,具有高性能、高可靠、高安全、高智能的企业级特性。
openGauss 技术架构
**查询优化**:通过智能分析和选择最佳执行路径来提升查询效率。 5. **执行引擎**:执行优化后的查询计划,负责具体的物理操作。 6.


