Timescale Cloud:性能、规模、企业级
自托管产品
MST
CREATE INDEX ... WITH (timescaledb.transaction_per_chunk, ...);
此选项扩展了 CREATE INDEX
,使其能够在创建索引时为每个分块使用单独的事务,而不是为整个超表使用单个事务。这允许在
CREATE INDEX
命令执行的大部分时间里,INSERT
和其他操作可以并发执行。当在单个分块上创建索引时,它会像在该分块上调用常规的 CREATE INDEX
一样运行,但其他分块则完全不受阻塞。
此版本的 CREATE INDEX
可用作 CREATE INDEX CONCURRENTLY
的替代方案,目前超表不支持 CREATE INDEX CONCURRENTLY
。
警告
不支持
CREATE UNIQUE INDEX
。如果操作中途失败,可能不会在所有超表分块上创建索引。如果发生这种情况,超表根表上的索引将被标记为无效。您可以通过对超表运行
\d+
来检查。索引仍然有效,并会在新分块上创建,但如果您想确保所有分块都有索引副本,请删除并重新创建它。您还可以使用以下查询查找所有无效索引
SELECT * FROM pg_index i WHERE i.indisvalid IS FALSE;
创建匿名索引
CREATE INDEX ON conditions(time, device_id)WITH (timescaledb.transaction_per_chunk);
或者
CREATE INDEX ON conditions USING brin(time, location)WITH (timescaledb.transaction_per_chunk);
关键词