默认情况下,当您创建连续聚合时,会自动创建一些索引。您可以更改此行为。您也可以手动创建和删除索引。

当您创建连续聚合时,将为每个 GROUP BY 列自动创建一个索引。该索引是一个复合索引,将 GROUP BY 列与 time_bucket 列组合在一起。

例如,如果您使用 GROUP BY device, location, bucket 定义连续聚合视图,则会创建两个复合索引:一个在 {device, bucket} 上,另一个在 {location, bucket} 上。

要关闭自动索引创建,请在创建连续聚合时将 timescaledb.create_group_indexes 设置为 false

例如

CREATE MATERIALIZED VIEW conditions_daily
WITH (timescaledb.continuous, timescaledb.create_group_indexes=false)
AS
...

您可以使用常规 PostgreSQL 语句在连续聚合上创建或删除索引。

例如,要在名为 weather_daily 的物化超表的 avg_temp 上创建索引

CREATE INDEX avg_temp_idx ON weather_daily (avg_temp);

索引在 _timescaledb_internal 模式下创建,连续聚合数据存储在该模式下。要删除索引,请指定模式。例如,要删除索引 avg_temp_idx,请运行

DROP INDEX _timescaledb_internal.avg_temp_idx

在 Timescale 2.7 及更高版本中,您可以在物化视图中的任何列上创建索引。这包括聚合列,例如存储总和和平均值的列。在早期版本的 TimescaleDB 中,您无法在聚合列上创建索引。

在任何 Timescale 版本中,您都无法在连续聚合上创建唯一索引。

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面