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中没有直接对应的原生字段类型用于类似功能。
相关推荐
guodingdingh2 小时前
软件开发工作问题总结0718
java·开发语言·数据库
GuWenyue4 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
Miao121316 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
CodexDave6 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
碎光拾影6 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
曾阿伦6 小时前
MongoDB 查询语句备忘手册
数据库·mongodb
一叶龙洲6 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
CCPC不拿奖不改名7 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
爬也要爬着前进8 小时前
redis主从搭建
数据库·redis·缓存
@Mike@9 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习