TDengine 新功能 VARBINARY 数据类型

1. 背景

VARBINARY 数据类型用于存储二进制数据,与 MySQL 中的 VARBINARY 数据类型功能相同,VARBINARY 数据类型长度可变,在创建表时指定最大字节长度,使用进按需分配存储,但不能超过建表时指定的最大值。

2. 功能说明

长度限制

VARBINARY 数据列最大长度为65517个字节(约等于64KB),VARBINARY 标签列最大长度为16382个字节(约等于16KB)因为需要满足每行数据总长度不超过64KB,标签总长度不超过16KB的约束。

SQL 语法

CREATE TABLE stb (ts timestamp, c1 varbinary(5120), c3 float) TAGS (t1 int, t2 binary(8), t3 varbinary(8))

使用

  1. 写入16进制表示的二进制数据,以 \x 开头,必须是16进制合法的字符,必须偶数个字符。

insert into tb3 using stb tags (3, 'tb3_bin1', '\x7f8290') values (now + 2s, 'nchar1', '\x7f8290', 0.3)

  1. 写入字符串,数据库里将存储字符串相应编码的二进制内容。

insert into tb1 using stb tags (1, 'tb1_bin1', 'vart1') values (now, 'nchar1', 'varc1', 0.3)

  1. 其他写入类型报错

insert into tb3 using stb tags (3, 'tb3_bin1', '\x7f8290') values (now + 2s, 'nchar1', '\x7f8290', 0.3)

  1. 查询结果以16进制 \x开头显示
  1. VARBINARY 操作符和谓词支持
  1. 不支持的操作符和谓词

算术运算符,位运算符,[NOT] LIKE/MATCH/NMATCH/->/CONTAINS

  1. 支持的操作符和谓词

比较运算符(按字节从左到右比较,相同时更长的大)

IS [NOT] NULL/[NOT] BETWEEN AND/[NOT] IN

  1. VARBINARY 类型仅支持如下函数操作

First/last/last_row/count/hyperloglog/sample/tail/mode/cast

cast函数不支持 VARBINARY 转成其他类型;

其他类型只有 varchar 可以转换为VARBINARY(和写入一致)

  1. VARBINARY 类型支持 schemaless 方式写入

同sql写入一样,可以写入16进制表示的二进制数据,以 \x 开头,或者写入字符串

VARBINARY类型需以 b/B 开头

  1. VARBINARY 类型支持 stmt 方式写入 示例

  2. VARBAINRY 存储

VARBINARY 存储格式和 binary 类型一样,前两个字节是长度,后面是内容,只不过内容里是二进制类型,不一定是可打印字符

  1. 和 BINARY 类型区别

TDengine 里 binary 类型实际是 varchar,是用来存储可打印字符的,和MYSQL 中 binary 类型不一样,由于历史原因保留而已,所以实际可显示字符串不建议用再用 binary 类型,用 varchar 代替

相关推荐
Acrelhuang7 小时前
工商业用电成本高?安科瑞液冷储能一体机一站式解供能难题-安科瑞黄安南
大数据·开发语言·人工智能·物联网·安全
小王毕业啦7 小时前
2010-2024年 非常规高技能劳动力(+文献)
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·经管数据
tod1137 小时前
力扣高频 SQL 50 题阶段总结(四)
开发语言·数据库·sql·算法·leetcode
VekiSon7 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
言無咎7 小时前
从规则引擎到任务规划:AI Agent 重构跨境财税复杂账务处理体系
大数据·人工智能·python·重构
!chen7 小时前
Redis快速实现布隆过滤器
数据库·redis·缓存
无限进步_7 小时前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
2301_790300968 小时前
数据分析与科学计算
jvm·数据库·python
Hello World . .8 小时前
数据结构:栈和队列
c语言·开发语言·数据结构·vim
-XWB-8 小时前
【Oracle】Oracle诊断系列(2/6):锁问题与阻塞分析——解决“卡住”的会话
数据库·oracle