本文介绍如何在创建列存索引时设置列存参数,以及如何修改已有列存索引的参数,并将详细说明列存索引参数。
版本限制
实例版本需要在5.4.20及以上。
在创建列存时设置参数
您可以在创建列存索引时,使用COLUMNAR_OPTIONS
关键字指定列存索引级别的参数,示例如下:
CREATE CLUSTERED COLUMNAR INDEX `cci`
ON tb (`id`)
PARTITION BY KEY (`id`)
PARTITIONS 16
COLUMNAR_OPTIONS='{
"dictionary_columns":"col1,col2",
"type":"snapshot",
"snapshot_retention_days":"7",
"auto_gen_columnar_snapshot_interval":"30"
}';
其中COLUMNAR_OPTIONS
是一个JSON格式的字符串。
参数说明:
参数名称 | 说明 | 作用范围 | 允许动态修改 |
type | 列存索引的类型。取值如下:
说明 更多信息,请参见创建列存快照。 | 实例级别、列存索引级别 | 是 |
snapshot_retention_days | 列存快照的保留时间,单位为天,取值范围如下:
说明
| 实例级别、列存索引级别 | 是 |
auto_gen_columnar_snapshot_interval | 自动生成列存快照点的时间间隔,单位为分钟,取值范围如下:
说明
| 实例级别、列存索引级别 | 是 |
dictionary_columns | 字典编码列,默认值为NULL。更多信息,请参见字典编码列。 | 列存索引级别 | 否 |
列存参数修改
对于允许动态修改的参数,您可以执行如下代码:
# 修改实例级别的参数
CALL polardbx.columnar_set_config(param_key, param_val);
# 修改列存索引级别的参数
CALL polardbx.columnar_set_config(cci_id, param_key, param_val);
# 修改列存索引级别的参数,需指定库名、表名、列存索引名
CALL polardbx.columnar_set_config(schema_name, table_name, cci_name, param_key, param_val);
其中
cci_id
为列存索引的唯一ID。如何获取cci_id
,请参见SHOW COLUMNAR STATUS。其中
param_key
为需要配置的参数名称。其中
param_val
为需要配置的参数值。