tongchenkeji 发表于:2023-4-17 22:53:200次点击 已关注取消关注 关注 私信 information_schema.columns 怎么varchar类型长度都是null?[阿里云云原生数据仓库] 暂停朗读为您朗读 information_schema.columns 怎么varchar类型长度都是null? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 云原生数据仓库AnalyticDB# information_schema.columns 怎么varchar类型长度都是null? ![2
wljslmzAM 2023-11-27 22:35:07 1 在阿里云云原生数据仓库AnalyticDB中,information_schema.columns 中关于 varchar 类型列长度返回 null 的原因是因为该类型列的长度限制不会被预定义,而是会根据实际数据存储来动态计算。 在 AnalyticDB 中,varchar 类型的字符串是根据实际存储需求动态计算长度的,因为 varchar 类型是可变长度数据类型。在创建表时,如果未指定 varchar 类型列的长度,则长度被视为NULL,而可变长度的数据在存储时不需要为每个数据项预留相同的存储空间,所以 varchar 类型的长度值会被视为 NULL。 如果你想要获取具体的 varchar 类型长度信息,可以通过使用 SHOW CREATE TABLE 命令查看该表的创建语句,其中的 varchar 类型长度信息将会被显示出来。 另外,需要注意的是,information_schema 列信息可能存在延迟,因为它需要通过扫描分布式存储的元数据来获取信息,并且元数据需要分布在整个集群中,因此会存在一定的延迟。如果你在进行DDL操作后需要立即获取最新的 metadata,可以通过执行 ANALYZE TABLE 命令来更新元数据。
在阿里云云原生数据仓库AnalyticDB中,information_schema.columns 中关于 varchar 类型列长度返回 null 的原因是因为该类型列的长度限制不会被预定义,而是会根据实际数据存储来动态计算。
在 AnalyticDB 中,varchar 类型的字符串是根据实际存储需求动态计算长度的,因为 varchar 类型是可变长度数据类型。在创建表时,如果未指定 varchar 类型列的长度,则长度被视为NULL,而可变长度的数据在存储时不需要为每个数据项预留相同的存储空间,所以 varchar 类型的长度值会被视为 NULL。
如果你想要获取具体的 varchar 类型长度信息,可以通过使用 SHOW CREATE TABLE 命令查看该表的创建语句,其中的 varchar 类型长度信息将会被显示出来。
另外,需要注意的是,information_schema 列信息可能存在延迟,因为它需要通过扫描分布式存储的元数据来获取信息,并且元数据需要分布在整个集群中,因此会存在一定的延迟。如果你在进行DDL操作后需要立即获取最新的 metadata,可以通过执行 ANALYZE TABLE 命令来更新元数据。
varchar类型,存储字节数最大为16MB,使用时无需指定存储长度。,此回答整理自钉群“云数据仓库ADB-开发者群”