YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
- MPP 架构
- 镜像分布策略
- 持续聚集
- 滑动窗口
- Grafana 监控指标解读
- Prometheus 监控指标解读
- 术语表
-
工具指南
- mxaddmirrors
- mxbackup
- mxbench
- mxdeletesystem
- mxgate
- mxinitstandby
- mxmoveseg
- mxpacklogs
- mxrecover
- mxrestore
- mxshift
- mxstart
- mxstate
- mxstop
- gpconfig
- pgvector
-
数据类型
-
存储引擎
-
执行引擎
-
系统配置参数
SQL 参考
- ABORT
- ALTER_DATABASE
- ALTER_EXTENSION
- ALTER_EXTERNAL_TABLE
- ALTER_FOREIGN_DATA_WRAPPER
- ALTER_FOREIGN_TABLE
- ALTER_FUNCTION
- ALTER_INDEX
- ALTER_RESOURCE_GROUP
- ALTER_RESOURCE_QUEUE
- ALTER_ROLE
- ALTER_RULE
- ALTER_SCHEMA
- ALTER_SEQUENCE
- ALTER_SERVER
- ALTER_TABLE
- ALTER_TABLESPACE
- ALTER_TYPE
- ALTER_USER_MAPPING
- ALTER_VIEW
- ANALYZE
- BEGIN
- CHECKPOINT
- COMMIT
- COPY
- CREATE_DATABASE
- CREATE_EXTENSION
- CREATE_EXTERNAL_TABLE
- CREATE_FOREIGN_DATA_WRAPPER
- CREATE_FOREIGN_TABLE
- CREATE_FUNCTION
- CREATE_INDEX
- CREATE_RESOURCE_GROUP
- CREATE_RESOURCE_QUEUE
- CREATE_ROLE
- CREATE_RULE
- CREATE_SCHEMA
- CREATE_SEGMENT_SET
- CREATE_SEQUENCE
- CREATE_SERVER
- CREATE_TABLE
- CREATE_TABLE_AS
- CREATE_TABLESPACE
- CREATE_TYPE
- CREATE_USER_MAPPING
- CREATE_VIEW
- DELETE
- DROP_DATABASE
- DROP_EXTENSION
- DROP_EXTERNAL_TABLE
- DROP_FOREIGN_DATA_WRAPPER
- DROP_FOREIGN_TABLE
- DROP_FUNCTION
- DROP_INDEX
- DROP_RESOURCE_GROUP
- DROP_RESOURCE_QUEUE
- DROP_ROLE
- DROP_RULE
- DROP_SCHEMA
- DROP_SEGMENT_SET
- DROP_SEQUENCE
- DROP_SERVER
- DROP_TABLE
- DROP_TABLESPACE
- DROP_TYPE
- DROP_USER_MAPPING
- DROP_VIEW
- END
- EXPLAIN
- GRANT
- INSERT
- LOAD
- LOCK
- REINDEX
- RELEASE_SAVEPOINT
- RESET
- REVOKE
- ROLLBACK_TO_SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT INTO
- SET ROLE
- SET TRANSACTION
- SET
- SHOW
- START TRANSACTION
- TRUNCATE
- UPDATE
- VACUUM
常见问题(FAQ)
存储引擎概述
存储引擎是数据库系统的存储基座,数据库基于存储引擎进行数据的创建、查询、更新和删除等操作。根据你的需要,不同的存储引擎将提供不同的存储机制,并可与不同的执行引擎组合成为适用于特定场景的数据库微内核。
目前 YMatrix 数据库系统支持几种存储引擎的使用:
- 基于 PostgreSQL 的 HEAP
- 基于 Greenplum 的 AO(Append-optimized)
- YMatrix 自研发的 MARS2
- 基于 MARS2 优化的 MARS3
存储引擎 | 描述 |
---|---|
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,...') |