400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
存储引擎是数据库系统的存储基座,数据库基于存储引擎进行数据的创建、查询、更新和删除等操作。根据你的需要,不同的存储引擎将提供不同的存储机制,并可与不同的执行引擎组合成为适用于特定场景的数据库微内核。
目前 YMatrix 数据库系统支持几种存储引擎的使用:
存储引擎 | 描述 |
---|---|
HEAP | PostgreSQL 数据库提供的存储引擎,又称堆表,采用行式存储。该类型的表支持大量并发读写、事务、索引等特性 |
AO | Greenplum 数据库提供的存储引擎,又称追加优化表,使用追加优化(Append-optimized,AO)的存储格式来批量装载和读取数据,并且能提供 HEAP 表上的性能优势。追加优化的存储为数据保护、压缩和行/列方向提供了校验和。行式或者列式追加优化的表都可以被压缩 |
MARS2 | 在 MARS 基础上开发的存储引擎,凭借其物理有序的合并方式,减少 I/O 寻址的次数,从而提高对表内数据的查询性能。MARS2 支持压缩、列存、自动归档、预聚集等功能,在时序场景中表现优越。在压缩方面,MARS2 可提供定制的压缩方案:编码链(mxcustom)。启用编码链可以对表进行细致、有针对性、定制化地深度压缩。MARS2 表不支持数据的更新和删除 |
MARS3 | 在 MARS2 基础上开发的存储引擎,其不仅继承了 MARS2 时序场景下的性能优势,还增添了对 AP 和 TP 场景的支持。此外,它除了继承了 MARS2 的很多优势特性,如编码链压缩,列存等功能,还对数据的写入性能进行了优化,可以应对不同形式的写入场景(如高频小批量的 TP 场景,低频大批量的 AP 场景)。MARS3 支持常规数据的更新和删除操作,支持 MVCC 机制,支持增删列,支持 Brin 索引 |
MARS2 与 MARS3 基本特性对比如下:
特性 | MARS2 | MARS3 |
---|---|---|
存储方式 | 列存 | 行列混存或列存 |
压缩 | 支持编码链 | 支持编码链 |
通过 UPDATE 与 DELETE 子句完成数据更新与删除 |
不支持 | 支持 |
增、删列 | 不支持 | 支持 |
MVCC | 不支持 | 支持 |
Runtimefilter | 支持 | 不支持 |
存储诊断 | 支持 | 不支持 |
数据分批合并(UPSERT) | 支持 | 支持 |
INSERT INTO ... VALUES ... ON CONFLICT ... DO UPDATE 语法 | 不支持 | 不支持 |
索引 | 建表时必须同时创建一个 mars2_btree 索引指定排序键,否则表无法生效(作用相当于 MARS3 表的 ORDER BY 子句) |
可选择性创建一个或多个 mars3_brin 索引,以提高查询效率(作用相当于 MARS2 表的 minmax 索引) |
表参数配置方式 | WITH(a=1,b=2,...) |
WITH(mars3options='a=1,b=2,...') |