重新排列单个块的堆以遵循索引的顺序。此函数的作用类似于 PostgreSQL CLUSTER 命令,但是它使用较低的锁级别,因此,与 CLUSTER 命令不同,在大部分过程中,块和超表可以被读取。它在操作期间确实会占用更多磁盘空间。

当数据经常以与最初插入时的顺序不同的顺序进行查询时,此命令特别有用。例如,数据通常以松散的时间顺序插入超表(例如,许多设备同时发送其当前状态),但人们通常会查询超表关于特定设备的信息。在这种情况下,使用 (device_id, time) 上的索引重新排列块可以显著提高此类查询的性能。

可以对超表的单个块直接调用此函数,但使用 add_reorder_policy 通常更方便。

名称类型描述
chunkREGCLASS要重新排列的块的名称。
名称类型描述
indexREGCLASS要排序的索引(在超表或块上)的名称。
verboseBOOLEAN设置为 true 时,将显示有关重新排列命令进度的消息。默认为 false。

此函数返回 void。

SELECT reorder_chunk('_timescaledb_internal._hyper_1_10_chunk', 'conditions_device_id_time_idx');

使用 conditions_device_id_time_idx 索引对 _timescaledb_internal._hyper_1_10_chunk 块执行重新排列。

关键字

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