更新时间:2025-07-10 GMT+08:00
分享

列存表支持的数据类型

列存表支持的普通数据类型如表1所示。

表1 列存表支持的数据类型

类别

数据类型

描述

长度

数值类型

smallint

小范围整数,别名为INT2。

2

integer

常用的整数,别名为INT4。

4

bigint

大范围的整数,别名为INT8。

8

decimal

任意精度型。

可变长度

numeric

任意精度型。

可变长度

real

单精度浮点数。

4

double precision

双精度浮点数。

8

smallserial

二字节序列整型。

2

serial

四字节序列整型。

4

bigserial

八字节序列整型。

8

货币类型

money

货币金额。

8

字符类型

character varying(n), varchar(n)

变长字符串。

可变长度

character(n), char(n)

定长字符串。

n

character、char

单字节内部类型。

1

text

变长字符串。

可变长度

nvarchar2

变长字符串。

可变长度

clob

文本大对象。

可变长度

日期/时间类型

timestamp with time zone

日期和时间,带时区。

8

timestamp without time zone

日期和时间。

8

date

Oracle兼容模式下记录日期和时间;其他兼容模式下,记录日期。

Oracle兼容模式下,占存储空间8字节;其他兼容模式下,占存储空间4字节。

time without time zone

只用于一日内时间。

8

time with time zone

只用于一日内时间,带时区。

12

interval

时间间隔。

16

JSON类型

json

-

-

jsonb

-

-

XML类型

xml

-

-

RoaringBitmap

-

高效位图,支持int类型数据集位图计算。

可变长度

数组类型支持情况与GUC参数enable_vectorization_array相关,具体如下:

  • 当GUC参数enable_vectorization_array(该参数仅9.1.1.100及以上集群版本支持)打开时,列存表可支持的数组类型包括bool, tiny int, small int, int, bigint, float4, float8, numeric,text, char, varchar,nvarchar2,bpchar, tinterval, smalldatetime,date,time, timestamp, timestamptz, interval, timetz。
  • enable_vectorization_array关闭时,不支持列存表创建数组类型。
  • 其他未列举的数据类型,暂不支持。

相关文档