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中没有直接对应的原生字段类型用于类似功能。
相关推荐
·薯条大王19 分钟前
MySQL联合查询
数据库·mysql
morris1312 小时前
【redis】redis实现分布式锁
数据库·redis·缓存·分布式锁
hycccccch3 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
这个懒人3 小时前
深入解析Translog机制:Elasticsearch的数据守护者
数据库·elasticsearch·nosql·translog
Yan-英杰3 小时前
【百日精通JAVA | SQL篇 | 第二篇】数据库操作
服务器·数据库·sql
NineData4 小时前
NineData云原生智能数据管理平台新功能发布|2025年3月版
数据库
百代繁华一朝都-绮罗生5 小时前
检查是否存在占用内存过大的SQL
数据库·sql
吾日三省吾码5 小时前
Python 脚本:自动化你的日常任务
数据库·python·自动化
CZIDC5 小时前
win11 系统环境下 新安装 WSL ubuntu + ssh + gnome 桌面环境
数据库·ubuntu·ssh
直裾6 小时前
Mapreduce的使用
大数据·数据库·mapreduce