📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

FUSE_ENCODING



返回应用于表中特定列的编码类型。它可帮助你了解数据在表中如何以原生格式被压缩和存储。

语法

FUSE_ENCODING('<database_name>', '<table_name>', '<column_name>')

该函数返回一个包含以下列的结果集:

列名数据类型描述
VALIDITY_SIZENullable(UInt32)位图值的大小,该位图用于指示列中每一行是否具有非空值。此位图用于跟踪该列数据中空值的存在或缺失。
COMPRESSED_SIZEUInt32列数据压缩后的大小。
UNCOMPRESSED_SIZEUInt32应用编码前的列数据大小。
LEVEL_ONEString应用于该列的主要或初始编码。
LEVEL_TWONullable(String)在初始编码之后应用于该列的次级或递归编码方法。

示例

-- Create a table with an integer column 'c' and apply 'Lz4' compression CREATE TABLE t(c INT) STORAGE_FORMAT = 'native' COMPRESSION = 'lz4'; -- Insert data into the table. INSERT INTO t SELECT number FROM numbers(2048); -- Analyze the encoding for column 'c' in table 't' SELECT LEVEL_ONE, LEVEL_TWO, COUNT(*) FROM FUSE_ENCODING('default', 't', 'c') GROUP BY LEVEL_ONE, LEVEL_TWO; level_one |level_two|count(*)| ------------+---------+--------+ DeltaBitpack| | 1| -- Insert 2,048 rows with the value 1 into the table 't' INSERT INTO t (c) SELECT 1 FROM numbers(2048); SELECT LEVEL_ONE, LEVEL_TWO, COUNT(*) FROM FUSE_ENCODING('default', 't', 'c') GROUP BY LEVEL_ONE, LEVEL_TWO; level_one |level_two|count(*)| ------------+---------+--------+ OneValue | | 1| DeltaBitpack| | 1|

文档内容是否有帮助?