最近有用到Starrocks,实际使用中基本可以当作mysql来使用,但是数据库字段还是有所不同的。
-
与MySQL相同或相似的基础类型
- 数值类型
- TINYINT、SMALLINT、INT/INTEGER、BIGINT:在Starrocks和MySQL中的定义和用途基本相似。都是用于存储整数,范围也和MySQL中的对应类型相同,例如TINYINT在两者中都是占用1个字节的有符号整数,范围是 - 128到127。
- FLOAT、DOUBLE、DECIMAL:这几种用于存储浮点数和定点数的类型在Starrocks和MySQL中的概念一致。如DECIMAL类型在两者中都是用于高精度的数值存储,格式DECIMAL(M, N)的含义相同,M表示数字总位数,N表示小数位数。
- 字符串类型
- CHAR、VARCHAR、TEXT:这些字符串类型在Starrocks和MySQL中有相似的功能。CHAR是定长字符串,VARCHAR是变长字符串,TEXT用于存储长文本内容。例如,在存储用户名称时,都可以使用VARCHAR来根据实际名称长度灵活存储。
- 日期和时间类型
- DATE、DATETIME、TIMESTAMP:它们在两种数据库中的格式和基本用途类似。DATE用于存储日期,DATETIME用于存储日期和时间,TIMESTAMP用于存储时间戳相关信息,并且在格式上(如DATE为'YYYY - MM - DD')是相同的。
- 布尔类型
- BOOLEAN:在Starrocks和MySQL中都是用于表示真假值,用法一致,例如在表示用户是否激活账号等场景下使用。
- 数值类型
-
Starrocks特有的或有差异的类型
- 复杂类型
- ARRAY :
- MySQL没有像Starrocks这样原生支持数组类型作为表字段类型。在Starrocks中,ARRAY类型可以用于存储一组相同类型的数据,例如可以存储一个用户的多个标签(ARRAY['tag1', 'tag2', 'tag3']),在处理具有多个关联属性的数据时提供了更方便的存储方式。
- MAP :
- MySQL没有类似的原生字段类型。Starrocks的MAP类型可以存储键值对,例如存储一个产品的属性和对应的值(如{ "color": "red", "size": "L" }),这种类型适合存储具有多个属性的复杂对象的数据。
- ARRAY :
- HyperLogLog类型(用于基数估算)
- 这是Starrocks特有的类型。它用于在大数据场景下高效地估算数据集中不同元素的数量(基数)。例如,在统计网站的独立访客数量(不考虑访客的访问次数,只关注不同的访客)时,使用HyperLogLog类型可以在占用较少内存的情况下快速估算出访客的大致数量。这种类型在MySQL中没有直接对应的原生字段类型用于类似功能。
- 复杂类型