为表字段选择合理的数据类型,不仅能够提升数据库的性能和存储效率,还能有助于维护数据库数据的完整性和可读性,并增强数据库的安全性和一致性。本文为您介绍云数据库 SelectDB 版所支持的数据类型。您也可以通过SHOW DATA TYPES;
语句,快速查看SelectDB支持的所有数据类型。
数值类型
类型名称 | 字节数 | 描述 |
BOOLEAN | 1 | 布尔值。 0:false 1:true |
TINYINT | 1 | 有符号整数。 值范围:[-128, 127] |
SMALLINT | 2 | 有符号整数。 值范围:[-32768, 32767] |
INT | 4 | 有符号整数。 值范围:[-2147483648, 2147483647] |
BIGINT | 8 | 有符号整数。 值范围:[-9223372036854775808, 9223372036854775807] |
LARGEINT | 16 | 有符号整数。 值范围:[-2^127 + 1 ~ 2^127 - 1] |
FLOAT | 4 | 浮点数。 值范围:[-3.4*10^38 ~ 3.4*10^38] |
DOUBLE | 8 | 浮点数。 值范围:[-1.79*10^308 ~ 1.79*10^308] |
DECIMAL | 4/8/16 | 高精度定点数。 定义格式:
|
日期类型
类型名称 | 字节数 | 描述 |
DATE | 16 | 日期类型。 取值范围:['0000-01-01', '9999-12-31'] 默认输出格式: |
DATETIME | 16 | 日期时间类型。 定义格式: 说明 P:
取值范围:['0000-01-01 00:00:00[.000000]', '9999-12-31 23:59:59[.999999]'] 默认输出格式: |
字符串类型
类型名称 | 字节数 | 描述 |
CHAR | M | 定长字符串。 定义格式: 说明 M代表的是定长字符串的字节长度。 占用空间大小:1~255个字节。 |
VARCHAR | 不定长 | 变长字符串。 定义格式: 说明
占用空间大小:1~65533个字节。 |
STRING | 不定长 | 变长字符串。 默认占用的最小空间:1048576字节(1 MB) 最大占用的空间大小:2147483643字节(2 GB) 重要
|
半结构类型
类型名称 | 字节数 | 描述 |
ARRAY | 不定长 | 由T类型元素组成的数组。 定义格式:ARRAY<T> 说明
使用注意事项:
|
MAP | 不定长 | 由K,V类型元素组成的Map。 定义格式:MAP<K,V> 说明 K,V支持的类型:
使用注意事项:
|
STRUCT | 不定长 | 由多个Field组成的结构体,也可被理解为多个列的集合。 定义格式:STRUCT<field_name:field_type, ... > 说明
使用注意事项:
|
JSON | 不定长 | 采用二进制JSON格式存储,通过JSON函数访问JSON内部字段。 默认支持的空间大小:1048576字节(1MB) 最大支持的空间大小:2147483643字节(2GB) 说明 可通过参数 |
VARIANT | 不定长 | 动态可变数据类型,专为半结构化数据如JSON设计,可以存入任意JSON,自动将JSON中的字段拆分成子列存储,提升存储效率和查询分析性能。VARIANT类型特别适用于处理复杂的嵌套结构,而这些结构可能随时会发生变化。 使用注意事项:
重要 要求SelectDB内核版本 |
聚合类型
类型名称 | 字节数 | 描述 |
HLL | 不定长 | HLL是模糊去重,在数据量大的情况性能优于Count Distinct。 使用注意事项:
|
BITMAP | 不定长 | 用于精确去重,如 UV 统计,人群圈选等场景。 使用注意事项:
|
QUANTILE_STATE | 不定长 | 用于计算分位数近似值的类型。 在导入数据时会对相同的Key列,不同Value进行预聚合。
使用注意事项:
|
AGG_STATE | 不定长 | 聚合函数。 用于聚合计算加速,且只能配合 使用注意事项:
|
IP类型
以下数据类型,仅SelectDB内核版本4.0.0
或以上支持,如不满足,请升级实例内核版本,如何升级,请参见升级内核版本。
类型名称 | 字节数 | 描述 |
IPv4 | 4字节 | 以4字节二进制存储IPv4地址,配合ipv4_*系列函数使用。 |
IPv6 | 16字节 | 以16字节二进制存储IPv6地址,配合ipv6_*系列函数使用。 |