热浪用户指南/准备数据/编码字符串列

3.3字符串列编码

对字符串列进行编码有助于加快对访问这些列的查询的处理。HeatWave支持两种字符串列编码类型:

  • 变长编码(VARLEN

  • 字典编码(排序

当表加载到HeatWave中时,变长编码应用于字符VARCHAR,文本-type默认列。要使用字典编码,必须定义RAPID_COLUMN =编码=排序关键字字符串在加载表之前的列注释中。关键字字符串必须是大写的;否则,它将被忽略。

中定义关键字字符串创建表ALTER TABLE声明中,如图所示:

CREATE TABLE orders (name VARCHAR(100) COMMENT 'RAPID_COLUMN=ENCODING=SORTED');
修改VARCHAR(100)注释'RAPID_COLUMN=ENCODING=SORTED';

方法显式指定变长编码RAPID_COLUMN = = VARLEN编码关键字字符串。

请注意

列注释中允许包含其他信息。例如,允许在列编码关键字字符串旁边指定列描述:

评论的column_descriptionRAPID_COLUMN =排序编码= '

提示

对于字符串列编码建议,请在将表加载到HeatWave并运行查询后使用Advisor实用程序。有关更多信息,请参见第9章,使用Advisor优化工作负载

若要修改或删除字符串列编码,请参见第五章,修改表

编码类型选择

如果你想逃跑加入涉及字符串列或使用字符串函数和操作符的操作,建议使用变长编码。变长编码比字典编码提供了更多的表达式、过滤器、函数和操作符支持。否则,根据字符串列中相对于表的基数的不同值的数量选择编码类型。

  • 变长编码(VARLEN)最适合具有大量不同值的列,例如评论列。

  • 字典编码(排序)最适合具有少量不同值的列,例如国家列。

变长编码需要为HeatWave节点上的列值提供空间。字典编码需要MySQL DB System节点上的字典空间。

下表提供了编码类型特征的概述:

表3.1列编码类型特征

编码类型 表达式、过滤器、函数和运算符支持 最适合 空间上需要
变长(VARLEN) 支持加入操作、字符串函数和操作符以及就像谓词。看到第12.4.1节,“变长编码” 具有大量不同值的列 热浪节点
字典(排序) 不支持加入操作、字符串函数和操作符或就像谓词。 具有少量不同值的列 MySQL DB系统节点

有关字符串列编码的其他信息,请参见第12.4节,“字符串列编码参考”