整型

整型分为有符号整型无符号整型,

无符号整型:int8、int16、int32、int64。

有符号整型:UInt8、UInt16

浮点型

Float32 - float

Float64 - double

由于底层存储存在精度误差的问题,所以尽可能的以整数形式存储数据,例如:1.0 - 0.9原本结果为0.1,但实际存储的结果大概是0.0999999999999998

布尔型

clickhouse没有单独的类型存储布尔值,可使用uint8数据类型,限制使用0/1来代替布尔值

Decimal型

有符号的浮点数,优点是可以在加减等运算中保持精度。

Decimal32:有效位数 1 ~ 9

Decimal64:有效位数 1 ~ 18

Decimal128:有效位数 1 ~ 38

字符串类型

String : 一般用的比较多,不限制字符串的长度

FixedString(N):固定长度数据类型,不够N的用空字符串补齐,超出N的则提示错误,一般用在固定字符串长度的场景中

枚举类型

比如:假设有字段type : (“news” : 1, “tuji” : 2),则存储时不可以输入除此之外的值,否则会报错,这种方式从某种意义上来讲,算是一种空间上的优化,但是一定程度上,增加了维护成本

时间类型

Date : 格式如“年-月-日”

DateTime : 格式如 “年-月-日 时:分:秒”

数组

在使用数组时,尽可能不要使用多维数组,部分存储引擎并不支持多维数组

Nullable

使用nullable对性能产生负面影响