openGauss是一款极致性能、安全、可靠的关系型(OLTP)开源数据库。主要提供以下功能:
- 数据类型、表、临时表、视图、索引、序列、存储过程、函数、触发器等SQL功能;
- 认证、权限管理、网络通信安全、数据库审计等安全特性;
- 主备双机、物理备份、逻辑备份、极致RTO高可用功能;
- 大并发链接、分区、plan hint、NUMA优化高性能能力。
系统架构
openGauss是单机系统,支持主备部署。业务数据存储在单个物理节点上,数据访问任务被推送到服务节点执行,通过服务器的高并发,实现对数据处理的快速响应。同时通过日志复制可以把数据复制到备机,提供数据的高可靠和读扩展。
openGauss行列混合引擎
openGauss支持在表级别指定行存/列存,根据不同的场景选择不同的存储类型。具有以下场景和应用:
| 场景 | 行存 | 列存 | 优选 |
|---|---|---|---|
| 点查询 | B+树索引,直接定位到行(页) | 粗粒度索引,定位到CU | 行存 |
| 数据更新 | 支持行级别锁,支持CU级别并发更新 | 支持CU级别锁,支持CU级别并发更新 | 行存 |
| 统计分析 | Pipeline执行 | 天然和向量化引擎对接,降低CPU Cache Miss和指令Miss,效率成倍提升 | 列存 |
| 批量加载 | 并行批量加载 | 压缩率高,IO量更小 | 列存 |
行列混合存储引擎可以同时为用户提供更优的数据压缩比(列存)、更好的索引性能(列存)、更好的点更新和点查询(行存)性能。
在大宽表,数据量比较大、查询经常关注某些列的场景中,行存储引擎查询性能比较差,向量化执行技术和列存储引擎可以极大的提升性能和减少存储空间。
向量化执行
标准的执行模式为控制流向下、数据流向上、上层驱动下层(上层节点调用下层节点要数据)、一次一元组(下层节点每次只返回一条元组给上层节点)。
而向量化执行相较于传统的执行模式,将一次一元组的模型修改为一次一批元组,配合列存特性,可以带来巨大的性能提升。
行列混合存储引擎
openGauss支持行存储和列存储两种存储模型,用户可以根据应用场景,建表的时候选择行存储还是列存储表。
一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不很多的情况下,适合列存储;如果表的字段个数比较少,查询大部分字段,那么选择行存储比较好。
列存下的压缩数据
对于非活跃的早期数据可以通过压缩来减少空间占用,降低采购和运维成本。
openGauss列存储压缩支持Delta Value Encoding、Dictionary、RLE、LZ4、ZLIB等压缩算法,平均压缩比7:1.压缩数据可直接访问,对业务透明,极大地缩短历史数据访问的准备时间。
最后修改时间:2021-03-30 18:03:09
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




