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

相关推荐
打码人的日常分享13 分钟前
运维服务方案,运维巡检方案,运维安全保障方案文件
大数据·运维·安全·word·安全架构
步步为营DotNet33 分钟前
5-2EFCore性能优化
数据库·性能优化·.net
不吃鱼的羊1 小时前
启动文件Startup_vle.c
c语言·开发语言
2501_920047031 小时前
Redis-集群
数据库·redis·bootstrap
半夏陌离2 小时前
SQL 拓展指南:不同数据库差异对比(MySQL/Oracle/SQL Server 基础区别)
大数据·数据库·sql·mysql·oracle·数据库架构
旋转的油纸伞2 小时前
SQL表一共有几种写入方式
数据库·sql
半夏陌离2 小时前
SQL 入门指南:排序与分页查询(ORDER BY 多字段排序、LIMIT 分页实战)
java·前端·数据库
isyoungboy2 小时前
SQL高效处理海量GPS轨迹数据:人员gps轨迹数据抽稀实战指南
数据库·sql
敬业小码哥3 小时前
记一次:mysql的json及json数组使用组合使用
数据库·mysql·json
练小杰3 小时前
【Mysql-installer-community-8.0.26.0】Mysql 社区版(8.0.26.0) 在Window 系统的默认安装配置
数据库·sql·mysql·adb·配置文件·mysql安装·关系型数据库