BUILD INDEX

构建索引

对表中已有的存量数据构建索引。目前支持布隆过滤器索引、倒排索引和向量索引。

语法

-- 语法 1:对全表存量数据构建索引 BUILD INDEX index_name ON [schema.]table_name; -- 语法 2:仅对指定分区构建索引,支持 =、!=、>、>=、<、<= 运算符 BUILD INDEX index_name ON [schema.]table_name WHERE partition_col1 = 'value1' [AND partition_col2 = 'value2' ...];

参数说明

参数必填说明
index_name
index_name
是要构建的索引名称,索引必须已通过
CREATE BLOOMFILTER INDEX
CREATE BLOOMFILTER INDEX
、
CREATE INVERTED INDEX
CREATE INVERTED INDEX
、
CREATE VECTOR INDEX
CREATE VECTOR INDEX
或建表时定义
schema
schema
否表所在的 Schema 名称,不指定则使用当前 Schema
table_name
table_name
是目标表名
WHERE
WHERE
子句
否指定分区条件,仅对匹配的分区构建索引,可指定一个或多个分区列

说明

CREATE BLOOMFILTER INDEX
CREATE BLOOMFILTER INDEX
、
CREATE INVERTED INDEX
CREATE INVERTED INDEX
和
CREATE VECTOR INDEX
CREATE VECTOR INDEX
仅对创建索引之后新写入的数据生效,已有的存量数据不会自动建立索引。执行
BUILD INDEX
BUILD INDEX
可以对存量数据补建布隆过滤器索引、倒排索引或向量索引。

BUILD INDEX
BUILD INDEX
是同步命令,执行过程会消耗计算资源。可通过 Job Profile 查看构建进度。

使用示例

  1. 对
    doc_test.employees
    doc_test.employees
    表的全部存量数据构建倒排索引:

首先确认索引已存在:

SHOW INDEX FROM doc_test.employees;

+---------------+------------+ | index_name | index_type | +---------------+------------+ | idx_emp_name | inverted | +---------------+------------+

然后对存量数据构建索引(需先切换到对应 Schema):

USE SCHEMA doc_test; BUILD INDEX idx_emp_name ON doc_test.employees;

  1. 对分区表的指定分区构建索引:

BUILD INDEX order_year_index ON public.t WHERE order_year = '2023';

  1. 对多个分区条件构建索引:

BUILD INDEX order_year_index ON public.t WHERE order_year = '2023' AND order_month = '01';

注意事项

  • BUILD INDEX
    BUILD INDEX
    是同步命令,执行过程会消耗计算资源。
  • 对大数据量的表构建索引会消耗较多计算资源,建议在业务低峰期执行。
  • 对分区表,建议以分区为粒度分批构建索引,避免单次任务过大。
  • 索引名称在 Schema 内必须唯一,
    BUILD INDEX
    BUILD INDEX
    时使用的
    index_name
    index_name
    不需要加 Schema 前缀,但需要确保当前 Schema 与表所在 Schema 一致,或通过
    USE SCHEMA
    USE SCHEMA
    切换。
  • 相关命令:创建布隆过滤器索引、创建倒排索引、创建向量索引、查看索引、删除索引

相关指南

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询