merge_tree_coarse_index_granularity
merge_tree_coarse_index_granularity 個の部分範囲に分割し、その中を再帰的に検索して必要なキーを探します。
設定可能な値:
- 正の偶数整数。
merge_tree_compact_parts_min_granules_to_multibuffer_read
merge_tree_determine_task_size_by_prewhere_columns
merge_tree_generic_exclusion_search_max_steps
IndexGenericExclusionSearchStepLimitReached および TextIndexGenericExclusionSearchStepLimitReached profile events は、予算を使い切った回数をカウントします。
(既定の) 値 0 は、ステップ数が無制限であることを意味します。
設定可能な値:
- ステップ数を無制限にする 0、または任意の正の整数。
merge_tree_max_bytes_to_use_cache
merge_tree_max_bytes_to_use_cache バイトを超えるデータを読み取る必要がある場合、非圧縮ブロックのキャッシュは使用されません。
非圧縮ブロックのキャッシュには、クエリ用に抽出されたデータが保存されます。ClickHouse はこのキャッシュを使用して、繰り返し実行される小規模なクエリへの応答を高速化します。この設定は、大量のデータを読み取るクエリによってキャッシュが使い尽くされるのを防ぎます。uncompressed_cache_size サーバー設定で、非圧縮ブロックのキャッシュのサイズを定義します。
設定可能な値:
- 任意の正の整数。
merge_tree_max_rows_to_use_cache
merge_tree_max_rows_to_use_cache 行を超えて読み取る必要がある場合、非圧縮ブロックのキャッシュは使用されません。
非圧縮ブロックのキャッシュには、クエリ用に抽出されたデータが保存されます。ClickHouse はこのキャッシュを使用して、繰り返し実行される小規模なクエリへの応答を高速化します。この設定は、大量のデータを読み取るクエリによってキャッシュが無駄に消費されるのを防ぎます。uncompressed_cache_size サーバー設定で、非圧縮ブロックのキャッシュのサイズを定義します。
設定可能な値:
- 任意の正の整数。
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read を超える場合、ClickHouse はこのファイルを複数のスレッドで同時に読み取ろうとします。
設定可能な値:
- 正の整数。
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
- 正の整数。
merge_tree_min_bytes_for_seek
merge_tree_min_bytes_for_seek バイト未満の場合、ClickHouse は追加の シーク を避けるため、両方のブロックを含むファイル範囲を順次読み取ります。
設定可能な値:
- 任意の正の整数。
merge_tree_min_bytes_per_read_stream
MergeTree スキャンで作成される読み取りストリームの最大数を制御します。順序付き読み取り、FINAL、レイヤー化された読み取り、および並列レプリカ読み取りには影響しません。ボリュームベースの上限は ceil(sqrt(estimated_read_bytes / this_setting)) です。ClickHouse では、少なくとも 16 ストリーム、およびこの上限を適用する前に要求されたストリーム数の少なくとも 4 分の 1 が維持されるため、実効ストリーム数は min(requested_streams, max(volume_based_cap, 16, floor(requested_streams / 4))) となります。これらの下限により、コストが estimated_read_bytes には反映されない、CPU 負荷の高い式や集計において下流の並列度が維持されます。
estimated_read_bytes は、索引およびパーティションプルーニング後に残ったマーク範囲で読み取られるカラムの非圧縮サイズです。ストリームごとのオーバーヘッドは、圧縮率ではなく処理される値の数に比例するストリームごとの作業量とのトレードオフになるため、非圧縮サイズが使用されます。
読み取りボリュームを保守的に見積もれない場合、この上限は適用されません。たとえば、古いパートで新しく追加された DEFAULT カラムを評価するために他の物理カラムを読む必要がある場合や、選択された範囲で可変幅カラムの一部のみを読み取る場合です。
デフォルトの 64 KB は、T(N) = W/N + F + V·N というコストモデルから導出されています。ここで、W は有効な作業量、F は固定のパイプラインオーバーヘッド、V はストリームごとの可変コストです。最適なストリーム数は sqrt(W/V) です。スループットを介して W をバイトで表すと、C = throughput · V ≈ 400 MB/s · 0.17 ms ≈ 64 KB となります。この値を大きくするとストリーム数は減少し (より保守的になり) 、小さくするとより多くのストリームが許可されます。この最適化を無効にするには 0 に設定します。
設定可能な値:
- 非負の整数。
merge_tree_min_bytes_per_task_for_remote_reading
filesystem_prefetch_min_bytes_for_single_read_task
タスクごとに読み取る最小バイト数。
merge_tree_min_read_task_size
merge_tree_min_rows_for_concurrent_read
merge_tree_min_rows_for_concurrent_read を超えると、ClickHouse はこのファイルを複数のスレッドで同時に読み取ろうとします。
設定可能な値:
- 正の整数。
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
- 正の整数。
merge_tree_min_rows_for_seek
merge_tree_min_rows_for_seek 行未満の場合、ClickHouse はファイル内でシークを行わず、データを順次読み取ります。
設定可能な値:
- 任意の正の整数。
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
PartsSplitter のテスト用。指定した確率で、MergeTree から読み取るたびに読み取り範囲を交差する範囲と交差しない範囲に分割します。
merge_tree_storage_snapshot_sleep_ms
- 0 - 遅延なし (デフォルト)
- N - ミリ秒単位の遅延
merge_tree_use_const_size_tasks_for_remote_reading
merge_tree_use_deserialization_prefixes_cache
merge_tree_use_prefixes_deserialization_thread_pool
max_prefixes_deserialization_thread_pool_size で制御されます。