【 使用环境 】测试环境
【 OB or 其他组件 】 OB
【 使用版本 】4.3.5
【问题描述】OceanBase4.3.5使用黑屏部署,默认是HTAP类型,还是TP或者AP类型
【复现路径】系统表中的ROW_FORMAT = DYNAMIC 指定的行存储,创建表指定列存储是否存在影响
【附件及日志】
根据文档库中的信息,可以解答您的问题:
-
默认部署类型
OceanBase 数据库 4.3.5 版本在黑屏部署时,默认是 HTAP 类型。HTAP(Hybrid Transactional and Analytical Processing)表示同时支持事务处理(TP)和分析处理(AP)。这是因为 OceanBase 的设计目标是通过同一份数据和同一个引擎,同时支持在线实时交易和实时分析两种场景。具体参考文档标题为:OceanBase 数据库概述 → 核心特性 → 实时 HTAP。 -
ROW_FORMAT = DYNAMIC 的影响
在系统表中,ROW_FORMAT = DYNAMIC
指定的是行存储格式。这是 OceanBase 默认的存储方式,适用于 OLTP 场景下的高频次短查询需求。如果您创建表时未特别指定列存储,则默认使用行存储。相关文档标题为:创建表 → 创建行存表。 -
创建表时指定列存储的影响
如果您在创建表时明确指定了列存储(例如通过WITH COLUMN GROUP
或者直接创建列存索引),那么该表或部分列将采用列存储格式。列存储适用于 OLAP 场景下的复杂分析查询,能够显著减少 I/O 和内存使用,提升查询效率。即使系统表中默认ROW_FORMAT = DYNAMIC
,创建表时的显式指定仍然会覆盖默认行为。相关文档标题为:OceanBase AP 核心特性 → 列存引擎 和 OceanBase AP 核心特性 → 实时写入 → 核心存储机制 → 列式存储。 -
综合说明
- 黑屏部署默认是 HTAP 类型,但您可以根据业务需求调整为纯 TP 或纯 AP 类型。
- 如果需要更精细地控制存储格式,可以通过创建表时的选项(如
WITH COLUMN GROUP
)来实现行存与列存的转换或共存。 - 示例代码如下:
-- 创建行存表 CREATE TABLE tbl_row (col1 INT PRIMARY KEY, col2 VARCHAR(50)); -- 创建列存表 CREATE TABLE tbl_column (col1 INT PRIMARY KEY, col2 VARCHAR(50)) WITH COLUMN GROUP(all columns); -- 创建行列混存表 CREATE TABLE tbl_mixed (c1 INT PRIMARY KEY, c2 INT, c3 INT, c4 VARCHAR(100)) WITH COLUMN GROUP (ALL COLUMNS, EACH COLUMN);
总结来说,OceanBase 4.3.5 默认是 HTAP 类型,但您可以根据实际需求通过创建表时的选项灵活调整存储格式。如果仍有疑问,请提供更多上下文信息以便进一步解答。
详情请参考:
收到,感谢回复