Starrocks表的数据库字段类型及与MySQL 的差异

最近有用到Starrocks,实际使用中基本可以当作mysql来使用,但是数据库字段还是有所不同的。

  1. 与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中都是用于表示真假值,用法一致,例如在表示用户是否激活账号等场景下使用。
  2. Starrocks特有的或有差异的类型

    • 复杂类型
      • ARRAY
        • MySQL没有像Starrocks这样原生支持数组类型作为表字段类型。在Starrocks中,ARRAY类型可以用于存储一组相同类型的数据,例如可以存储一个用户的多个标签(ARRAY['tag1', 'tag2', 'tag3']),在处理具有多个关联属性的数据时提供了更方便的存储方式。
      • MAP
        • MySQL没有类似的原生字段类型。Starrocks的MAP类型可以存储键值对,例如存储一个产品的属性和对应的值(如{ "color": "red", "size": "L" }),这种类型适合存储具有多个属性的复杂对象的数据。
    • HyperLogLog类型(用于基数估算)
      • 这是Starrocks特有的类型。它用于在大数据场景下高效地估算数据集中不同元素的数量(基数)。例如,在统计网站的独立访客数量(不考虑访客的访问次数,只关注不同的访客)时,使用HyperLogLog类型可以在占用较少内存的情况下快速估算出访客的大致数量。这种类型在MySQL中没有直接对应的原生字段类型用于类似功能。
相关推荐
0xDevNull3 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花3 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸3 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain3 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希4 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神4 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员4 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java4 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿4 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴4 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存