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
    切换。
  • 相关命令:创建布隆过滤器索引创建倒排索引创建向量索引查看索引删除索引

相关指南

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