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

相关推荐
Thomas_YXQ19 分钟前
Unity无GC读取图片与网格完整方案
大数据·人工智能·unity·微信·产品运营
杨云龙UP43 分钟前
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
linux·运维·数据库·sql·oracle·报告·巡检
Database_Cool_1 小时前
Hudi 湖仓一体架构:阿里云 AnalyticDB MySQL 原生集成最佳实践
数据库·mysql·阿里云
我是一颗柠檬1 小时前
【Redis】发布订阅与消息队列Day8(2026年)
数据库·redis·后端·缓存
sukioe1 小时前
Redis 持久化+高可用详解:RDB/AOF/混合/主从/哨兵/集群
数据库·redis·缓存
全栈软件开发1 小时前
祈福导航系统V1.1更新 优化后端控制逻辑和前台UI
数据库·祈福导航系统
189228048612 小时前
NV023固态MT29F16T08GWLCEJ9-QBES:C
大数据·服务器·人工智能·科技·缓存
真上帝的左手2 小时前
19. 大数据-数仓建设解决方案
大数据·数据仓库
_qingche2 小时前
H2 数据库到 MySQL 数据迁移
java·数据库·spring boot·mysql·spring·重构·kotlin
AOwhisky3 小时前
MySQL 学习笔记(第一期):数据库基础与 MySQL 初探
运维·数据库·笔记·学习·mysql·云计算