创建聚合索引
引入或更新版本:v1.2.339
AGGREGATING INDEX是企业版功能。 如需获取许可证,请联系 Databend 支持团队。
在 Databend 中创建一个新的聚合索引。
语法
CREATE [ OR REPLACE ] [ ASYNC ] AGGREGATING INDEX <index_name> AS SELECT ...
-
ASYNC
选项:添加 ASYNC 是可选的。它允许异步创建索引。这意味着索引不会立即构建。要稍后构建它,请使用 REFRESH AGGREGATING INDEX 命令。 -
在创建聚合索引时,将其使用限制在标准的 聚合函数(例如 AVG、SUM、MIN、MAX、COUNT 和 GROUP BY)中,同时请注意 GROUPING SETS、窗口函数、LIMIT 和 ORDER BY 是不被接受的,否则你会收到错误:
Currently create aggregating index just support simple query, like: SELECT ... FROM ... WHERE ... GROUP BY ...
。 -
创建聚合索引时定义的查询过滤范围应匹配或包含实际查询的范围。
-
要确认聚合索引是否适用于查询,请使用 EXPLAIN 命令分析查询。
示例
此示例为查询 "SELECT MIN(a), MAX(c) FROM agg" 创建了一个名为 my_agg_index 的聚合索引:
-- 准备数据
CREATE TABLE agg(a int, b int, c int);
INSERT INTO agg VALUES (1,1,4), (1,2,1), (1,2,4), (2,2,5);
-- 创建聚合索引
CREATE AGGREGATING INDEX my_agg_index AS SELECT MIN(a), MAX(c) FROM agg;