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 代替

相关推荐
AAA修煤气灶刘哥21 小时前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
阿里云大数据AI技术1 天前
大数据公有云市场第一,阿里云占比47%!
大数据
RestCloud1 天前
揭秘 CDC 技术:让数据库同步快人一步
数据库·api
得物技术1 天前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
Lx3521 天前
Hadoop容错机制深度解析:保障作业稳定运行
大数据·hadoop
可涵不会debug1 天前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom1 天前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
麦兜*1 天前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
Slaughter信仰1 天前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库
麦兜*1 天前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring