📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

RECLUSTER TABLE



テーブルを再クラスタリングします。テーブルを再クラスタリングする理由とタイミングについては、Re-clustering Table を参照してください。

構文

ALTER TABLE [ IF EXISTS ] <table_name> RECLUSTER [ FINAL ] [ WHERE condition ] [ LIMIT <segment_count> ]

このコマンドには、処理できるセグメント数に制限があり、デフォルト値は "max_thread * 4" です。LIMIT オプションを使用してこの制限を変更できます。あるいは、テーブル内のデータをさらにクラスタリングする方法として、次の 2 つの選択肢があります。

  • テーブルに対してこのコマンドを複数回実行する。
  • FINAL オプションを使用して、完全にクラスタリングされるまでテーブルの最適化を継続する。

このコマンドは、テーブルを最初からクラスタリングするわけではありません。代わりに、最新の LIMIT セグメントから最も無秩序な既存のストレージブロックを選択し、クラスタリングアルゴリズムを使用して再編成します。

例

-- create table create table t(a int, b int) cluster by(a+1); -- insert some data to t insert into t values(1,1),(3,3); insert into t values(2,2),(5,5); insert into t values(4,4); select * from clustering_information('default','t')\G *************************** 1. row *************************** cluster_key: ((a + 1)) total_block_count: 3 constant_block_count: 1 unclustered_block_count: 0 average_overlaps: 1.3333 average_depth: 2.0 block_depth_histogram: {"00002":3} -- alter table recluster ALTER TABLE t RECLUSTER FINAL WHERE a != 4; select * from clustering_information('default','t')\G *************************** 1. row *************************** cluster_key: ((a + 1)) total_block_count: 2 constant_block_count: 1 unclustered_block_count: 0 average_overlaps: 1.0 average_depth: 2.0 block_depth_histogram: {"00002":2}

このページは役に立ちましたか?