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

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

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

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

此函数不返回任何值。

在索引上重新排序数据块

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

关键词

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