これらの設定は system.merge_tree_settings で参照でき、ClickHouse のソースコードから自動生成されています。
use_adaptive_write_buffer_for_dynamic_subcolumns
Dynamic サブカラムの書き込み時にアダプティブな書き込みバッファを使用し、 メモリ使用量を削減できるようにします
use_async_block_ids_cache
廃止された設定で、効果はありません。
use_compact_variant_discriminators_serialization
Variant データ型における判別子のバイナリシリアライゼーションで、compact モードを有効にします。 このモードでは、ほとんどが 1 つの variant である場合や NULL 値 が多い場合に、 パーツ内で判別子を保存するためのメモリ使用量を大幅に削減できます。
use_const_adaptive_granularity
非定数のアダプティブ粒度 (デフォルトで、index_granularity_bytes が 0 以外の場合) では、
granule のバイト単位のサイズが一定に保たれるため、行数は変動します。書き込まれる各
block について、granule あたりの行数は index_granularity_bytes をその
block 内の行の平均サイズで割った値となり、上限は index_granularity です。granule ごとに行数が異なるため、
パーツ内の各 granule の行数をそれぞれ 8 バイトとしてメモリに保持する必要があり、大規模なテーブルでは合計で数十 GB に達します。
定数のアダプティブ粒度 (この設定) を有効にすると、代わりに granule あたりの行数が一定に保たれるため、 バイト単位のサイズは変動します。この行数は、書き込まれるパーツ内の行の平均サイズから一度だけ 計算され、パーツには granule ごとに 1 つの値ではなく、 この単一の値が保存されます。すべての granule に同じ数の行が含まれるため、 granule ごとの追加の行数を保存する必要はありません。
現在これらの値に使用されているメモリ量は、
system.asynchronous_metrics の TotalIndexGranularityBytesInMemory メトリクスで報告され、
パーツごとには system.parts.index_granularity_bytes_in_memory で確認できます。
この設定は、変更後に書き込まれたパーツにのみ適用されます。
既存のパーツに適用するには、
ALTER TABLE … REWRITE PARTS
を使用してください。Compact パーツでは常にアダプティブ粒度が使用されます。
use_metadata_cache
廃止された設定で、何も行いません。
use_primary_key_cache
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 24.12 | 0 | 新しい設定 |
すべての索引をメモリに保持する代わりに、 プライマリインデックスに cache を使用します。非常に大きなテーブルで有用です