如何在安装了 TimescaleDB 的 PostgreSQL table 上添加复合/复合索引?

How do you add a compound / composite index on a PostgreSQL table with TimescaleDB installed?

如何在安装了 TimescaleDB 的 PostgreSQL table 上添加复合/复合索引?

按照https://docs.timescale.com/latest/using-timescaledb/schema-management,您可以通过简单地执行以下操作将复合/复合索引添加到TimescaleDB:

CREATE INDEX ON conditions (time DESC, cityid)
WHERE cityid IS NOT NULL;

time 是带有时间戳的列(在 TimescaleDB 中用作主键的列)。 cityid 是我们可能经常查询的城市标识符的列(作为时间序列日期之后的第二个参数)。

这可以在将 table 转换为 hypertable 之前或之后完成。

为了避免在列cityid经常是NULL时膨胀索引,语句WHERE cityid IS NOT NULL是for。默认情况下使用此选项,除非您经常搜索丢失的数据 (cityid IS NULL)。