YashanDB JSON类型数据

本文内容来自YashanDB官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C/SQL%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/JSON.html

YashanDB中的JSON类型是一种可变长度数据类型,通过解析符合标准JSON格式的字符串获得的二进制数据。

Note

JSON对象数据类型是基于UTF8字符集的。将字符串编码成JSON对象时,如果字符串的字符集不是UTF8,则先将字符串自动转换为UTF8字符集再进行JSON对象编码。

关于JSON格式的详细描述具体可以参考JSON文档

# 存储属性

类型字节长度
JSON行存:
1-32MB
列存:
1~32MB

定义格式:

类型格式规则
JSONJSON变长二进制串,无需指定size

YashanDB的JSON类型存储方式与大对象类型的BLOB类型相同,存储包含行内存储和行外存储两种方式:

  • 当一行的JSON列的数据小于一定的字节限制时,JSON数据将存储在行内。对于HEAP表,该限制是4000字节;对于TAC/LSC表,该限制是32000字节。
  • 当超过上述字节限制时,JSON数据存入单独的大对象数据空间(可为其指定表空间)。

Note

  1. 数据在存储时会产生一些内部元信息,行存表(HEAP表)字节限制包括这部分元数据所占空间,但列存表(TAC和LSC表)字节限制不包括元数据所占空间。
  2. 以DB_BLOCK_SIZE = 8K为例,JSON类型数据在行存表中的最大字节长度为4G*8K=32T

# 使用规则

JSON表示可变长度二进制数据,数据通过解析符合标准格式的字符串得到。可以解析为JSON对象的字符串长度上限为32MB。

解析成为JSON类型的数据长度与原有的字符串长度不一定相同,大部分情况下转换为JSON类型后的数据会比原字符串更大。

JSON类型支持与字符串的相互转换,但不能进行加减乘除、比较、拼接等运算。JSON的运算能力主要由具体的JSON相关的内置函数提供。

JSON类型的列字段不能作为分区键。

示例

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值