重新排列单个块的堆以遵循索引的顺序。此函数的作用类似于 PostgreSQL CLUSTER 命令,但是它使用较低的锁级别,因此,与 CLUSTER 命令不同,在大部分过程中,块和超表可以被读取。它在操作期间确实会占用更多磁盘空间。
当数据经常以与最初插入时的顺序不同的顺序进行查询时,此命令特别有用。例如,数据通常以松散的时间顺序插入超表(例如,许多设备同时发送其当前状态),但人们通常会查询超表关于特定设备的信息。在这种情况下,使用 (device_id, time)
上的索引重新排列块可以显著提高此类查询的性能。
可以对超表的单个块直接调用此函数,但使用 add_reorder_policy 通常更方便。
名称 | 类型 | 描述 |
---|---|---|
chunk | REGCLASS | 要重新排列的块的名称。 |
名称 | 类型 | 描述 |
---|---|---|
index | REGCLASS | 要排序的索引(在超表或块上)的名称。 |
verbose | BOOLEAN | 设置为 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 上编辑此页面。