雷州网站建设,游戏网站织梦模板,51自学网官方网站,权威发布公众号文章目录 openGauss学习笔记-51 openGauss 高级特性-列存储51.1 语法格式51.2 参数说明51.3 示例 openGauss学习笔记-51 openGauss 高级特性-列存储
openGauss支持行列混合存储。行存储是指将表按行存储到硬盘分区上#xff0c;列存储是指将表按列存储到硬盘分区上。
行、列… 文章目录 openGauss学习笔记-51 openGauss 高级特性-列存储51.1 语法格式51.2 参数说明51.3 示例 openGauss学习笔记-51 openGauss 高级特性-列存储
openGauss支持行列混合存储。行存储是指将表按行存储到硬盘分区上列存储是指将表按列存储到硬盘分区上。
行、列存储模型各有优劣建议根据实际情况选择。通常openGauss用于OLTP联机事务处理场景的数据库默认使用行存储仅对执行复杂查询且数据量大的OLAP联机分析处理场景时才使用列存储。默认情况下创建的表为行存储。行存储和列存储的差异请参见图1。
图 1 行存储和列存储的差异 上图中左上为行存表右上为行存表在硬盘上的存储方式。左下为列存表右下为列存表在硬盘上的存储方式。
行、列存储有如下优缺点
存储模型优点缺点行存数据被保存在一起。INSERT/UPDATE容易。选择(SELECT)时即使只涉及某几列所有数据也都会被读取。列存查询时只有涉及到的列会被读取。投影(Projection)很高效。任何列都能作为索引。选择完成时被选择的列要重新组装。INSERT/UPDATE比较麻烦。
一般情况下如果表的字段比较多大宽表查询中涉及到的列不多的情况下适合列存储。如果表的字段个数比较少查询大部分字段那么选择行存储比较好。
存储类型适用场景行存点查询(返回记录少基于索引的简单查询)。增、删、改操作较多的场景。频繁的更新、少量的插入。列存统计分析类查询 (关联、分组操作较多的场景)。即席查询查询条件不确定行存表扫描难以使用索引。一次性大批量插入。表列数较多建议使用列存表。如果每次查询时只涉及了表的少数50%总列数几个列建议使用列存表。
51.1 语法格式
CREATE TABLE table_name (column_name data_type [, ... ])[ WITH ( ORIENTATION value) ];51.2 参数说明 table_name 要创建的表名。 column_name 新表中要创建的字段名。 data_type 字段的数据类型。 ORIENTATION 指定表数据的存储方式即行存方式、列存方式该参数设置成功后就不再支持修改。 取值范围 ROW表示表的数据将以行式存储。 行存储适合于OLTP业务适用于点查询或者增删操作较多的场景。 COLUMN表示表的数据将以列式存储。 列存储适合于数据仓库业务此类型的表上会做大量的汇聚计算且涉及的列操作较少。
51.3 示例
不指定ORIENTATION参数时表默认为行存表。例如
openGauss# CREATE TABLE customer_test1
(state_ID CHAR(2),state_NAME VARCHAR2(40),area_ID NUMBER
);--删除表
openGauss# DROP TABLE customer_test1;创建列存表时需要指定ORIENTATION参数。例如
openGauss# CREATE TABLE customer_test2
(state_ID CHAR(2),state_NAME VARCHAR2(40),area_ID NUMBER
)
WITH (ORIENTATION COLUMN);--删除表
openGauss# DROP TABLE customer_test2;点赞你的认可是我创作的动力 ⭐️ 收藏你的青睐是我努力的方向 ✏️ 评论你的意见是我进步的财富