TimescaleDB 允许您将数据和索引移动到不同的表空间。这使您能够随着数据的老化,将其移动到更具成本效益的存储中。
move_chunk
函数类似于 PostgreSQL CLUSTER 命令 和 PostgreSQL ALTER TABLE...SET TABLESPACE 命令的组合。然而,与这些 PostgreSQL 命令不同,move_chunk
函数使用较低的锁级别,因此块和超表可以在大多数操作过程中被读取。这会以操作期间的磁盘使用量略微增加为代价。有关此功能的更详细讨论,请参阅有关 使用表空间管理存储 的文档。
注意
您必须以超级用户身份登录,例如 postgres
用户,才能使用 move_chunk()
调用。
名称 | 类型 | 描述 |
---|---|---|
chunk | REGCLASS | 要移动的块的名称 |
destination_tablespace | NAME | 要移动的块的目标表空间 |
index_destination_tablespace | NAME | 与您要移动的块相关的索引的目标表空间 |
名称 | 类型 | 描述 |
---|---|---|
reorder_index | REGCLASS | 要排序的索引的名称(在超表或块上) |
verbose | BOOLEAN | 设置为 true 会显示有关 move_chunk 命令进度的消息。默认值为 false。 |
SELECT move_chunk(chunk => '_timescaledb_internal._hyper_1_4_chunk',destination_tablespace => 'tablespace_2',index_destination_tablespace => 'tablespace_3',reorder_index => 'conditions_device_id_time_idx',verbose => TRUE);
关键词