> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# merge_tree_* セッション設定

> merge_tree_* の自動生成グループに属する ClickHouse のセッション設定。

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>型</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>デフォルト値</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          再起動せずに変更可能
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'ClickHouse Cloud 専用'}
        </div>;
};

これらの設定は [system.settings](/docs/ja/reference/system-tables/settings) で確認でき、[ソースコード](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) から自動生成されています。

<div id="merge_tree_coarse_index_granularity">
  ## merge\_tree\_coarse\_index\_granularity
</div>

<SettingsInfoBlock type="UInt64" default_value="8" />

データを検索する際、ClickHouse は索引ファイル内のデータマークを確認します。必要なキーが含まれる範囲が見つかると、ClickHouse はその範囲を `merge_tree_coarse_index_granularity` 個の部分範囲に分割し、その中を再帰的に検索して必要なキーを探します。

設定可能な値:

* 正の偶数整数。

<div id="merge_tree_compact_parts_min_granules_to_multibuffer_read">
  ## merge\_tree\_compact\_parts\_min\_granules\_to\_multibuffer\_read
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="UInt64" default_value="16" />

ClickHouse Cloud でのみ有効です。並列読み取りと prefetch をサポートするマルチバッファリーダーを使用するために必要な、MergeTree テーブルの compact パーツ内のストライプに含まれるグラニュール数を指定します。リモート fs から読み取る場合、マルチバッファリーダーを使用すると読み取りリクエスト数が増加します。パーツに含まれるグラニュール数がこのしきい値未満であり、かつ読み取るカラム数よりも少ない場合、そのパーツは単一バッファで読み取られます。これは、その場合は単一バッファリーダーのほうがマルチバッファリーダーより少ない読み取りリクエストで済むためです。

<div id="merge_tree_determine_task_size_by_prewhere_columns">
  ## merge\_tree\_determine\_task\_size\_by\_prewhere\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

読み取りタスクサイズの決定に、prewhereカラムのサイズのみを使用するかどうか。

<div id="merge_tree_generic_exclusion_search_max_steps">
  ## merge\_tree\_generic\_exclusion\_search\_max\_steps
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "主キー索引に対する汎用排除検索のステップ数を制限するための新しい設定。"}]}]} />

フィルタを主キーの単一の連続した範囲として評価できない場合、たとえば先頭以外のキーカラムを使用している場合、ClickHouse は索引マークに対して反復的な汎用排除検索アルゴリズムを実行します。同じアルゴリズムは、テキスト索引の解析にも使用されます。この設定は、アルゴリズムが各データパートに費やすステップ数 (索引のチェック回数) を制限します。

この予算は、残っている中で最も大きいマーク範囲から優先的に消費されます。予算を使い切ると、完全に解析されなかった範囲はひとかたまりとして受け入れられるため、クエリの正しさは保たれますが、無制限の検索で選択される場合よりも多くのグラニュールを読み取ることがあります。予算を小さくすると、読み取るデータ量が増える代わりに索引解析は高速になります。この制限は解析コストの厳密な上限ではなく、検索はおおよそ 1 回の分割ラウンド分だけ超過することがあります。また、パートがすでに多数の範囲に分割されている場合 (たとえば query condition cache による場合) 、制限に関係なく各範囲は少なくとも 1 回チェックされます。

検索が各データパートで実行したステップ数は、クエリの trace レベルのログメッセージに記録されます。また、`IndexGenericExclusionSearchStepLimitReached` および `TextIndexGenericExclusionSearchStepLimitReached` profile events は、予算を使い切った回数をカウントします。

(既定の) 値 0 は、ステップ数が無制限であることを意味します。

設定可能な値:

* ステップ数を無制限にする 0、または任意の正の整数。

<div id="merge_tree_max_bytes_to_use_cache">
  ## merge\_tree\_max\_bytes\_to\_use\_cache
</div>

<SettingsInfoBlock type="UInt64" default_value="2013265920" />

1つのクエリで ClickHouse が `merge_tree_max_bytes_to_use_cache` バイトを超えるデータを読み取る必要がある場合、非圧縮ブロックのキャッシュは使用されません。

非圧縮ブロックのキャッシュには、クエリ用に抽出されたデータが保存されます。ClickHouse はこのキャッシュを使用して、繰り返し実行される小規模なクエリへの応答を高速化します。この設定は、大量のデータを読み取るクエリによってキャッシュが使い尽くされるのを防ぎます。[uncompressed\_cache\_size](/docs/ja/reference/settings/server-settings/settings#uncompressed_cache_size) サーバー設定で、非圧縮ブロックのキャッシュのサイズを定義します。

設定可能な値:

* 任意の正の整数。

<div id="merge_tree_max_rows_to_use_cache">
  ## merge\_tree\_max\_rows\_to\_use\_cache
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

ClickHouse が 1 回のクエリで `merge_tree_max_rows_to_use_cache` 行を超えて読み取る必要がある場合、非圧縮ブロックのキャッシュは使用されません。

非圧縮ブロックのキャッシュには、クエリ用に抽出されたデータが保存されます。ClickHouse はこのキャッシュを使用して、繰り返し実行される小規模なクエリへの応答を高速化します。この設定は、大量のデータを読み取るクエリによってキャッシュが無駄に消費されるのを防ぎます。[uncompressed\_cache\_size](/docs/ja/reference/settings/server-settings/settings#uncompressed_cache_size) サーバー設定で、非圧縮ブロックのキャッシュのサイズを定義します。

設定可能な値:

* 任意の正の整数。

<div id="merge_tree_min_bytes_for_concurrent_read">
  ## merge\_tree\_min\_bytes\_for\_concurrent\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="251658240" />

[MergeTree](/docs/ja/reference/engines/table-engines/mergetree-family/mergetree)エンジンのテーブルにおいて、1つのファイルから読み取るバイト数が `merge_tree_min_bytes_for_concurrent_read` を超える場合、ClickHouse はこのファイルを複数のスレッドで同時に読み取ろうとします。

設定可能な値:

* 正の整数。

<div id="merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem">
  ## merge\_tree\_min\_bytes\_for\_concurrent\_read\_for\_remote\_filesystem
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "設定は非推奨"}]}]} />

リモートファイルシステムから読み取る際に、[MergeTree](/docs/ja/reference/engines/table-engines/mergetree-family/mergetree)エンジンが並列読み取りを開始するまでに、1つのファイルから読み取る最小バイト数です。この設定の使用は推奨されません。

設定可能な値:

* 正の整数。

<div id="merge_tree_min_bytes_for_seek">
  ## merge\_tree\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

1 つのファイル内で読み取る 2 つのデータブロック間の距離が `merge_tree_min_bytes_for_seek` バイト未満の場合、ClickHouse は追加の シーク を避けるため、両方のブロックを含むファイル範囲を順次読み取ります。

設定可能な値:

* 任意の正の整数。

<div id="merge_tree_min_bytes_per_task_for_remote_reading">
  ## merge\_tree\_min\_bytes\_per\_task\_for\_remote\_reading
</div>

**別名**: `filesystem_prefetch_min_bytes_for_single_read_task`

<SettingsInfoBlock type="UInt64" default_value="2097152" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "2097152"},{"label": "値は `filesystem_prefetch_min_bytes_for_single_read_task` に統一されました"}]}]} />

タスクごとに読み取る最小バイト数。

<div id="merge_tree_min_read_task_size">
  ## merge\_tree\_min\_read\_task\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "8"},{"label": "新しい設定"}]}]} />

タスクサイズの厳格な下限値 (グラニュール の数が少なく、利用可能なスレッド数が多い場合でも、これより小さいタスクは割り当てられません

<div id="merge_tree_min_rows_for_concurrent_read">
  ## merge\_tree\_min\_rows\_for\_concurrent\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="163840" />

[MergeTree](/docs/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブルのファイルから読み取る行数が `merge_tree_min_rows_for_concurrent_read` を超えると、ClickHouse はこのファイルを複数のスレッドで同時に読み取ろうとします。

設定可能な値:

* 正の整数。

<div id="merge_tree_min_rows_for_concurrent_read_for_remote_filesystem">
  ## merge\_tree\_min\_rows\_for\_concurrent\_read\_for\_remote\_filesystem
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "設定は非推奨"}]}]} />

リモートファイルシステムからの読み取り時に、[MergeTree](/docs/ja/reference/engines/table-engines/mergetree-family/mergetree)エンジンが読み取りを並列化できるようになるまでに、1つのファイルから読み取る最小行数です。この設定の使用は推奨されません。

設定可能な値:

* 正の整数。

<div id="merge_tree_min_rows_for_seek">
  ## merge\_tree\_min\_rows\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

1 つのファイル内で読み取る 2 つのデータブロック間の距離が `merge_tree_min_rows_for_seek` 行未満の場合、ClickHouse はファイル内でシークを行わず、データを順次読み取ります。

設定可能な値:

* 任意の正の整数。

<div id="merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability">
  ## merge\_tree\_read\_split\_ranges\_into\_intersecting\_and\_non\_intersecting\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "`PartsSplitter` のテスト用。指定した確率で、MergeTree から読み取るたびに読み取り範囲を交差する範囲と交差しない範囲に分割します。"}]}]} />

`PartsSplitter` のテスト用。指定した確率で、MergeTree から読み取るたびに読み取り範囲を交差する範囲と交差しない範囲に分割します。

<div id="merge_tree_storage_snapshot_sleep_ms">
  ## merge\_tree\_storage\_snapshot\_sleep\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "クエリ内のストレージスナップショットの整合性をデバッグするための新しい設定"}]}]} />

MergeTree テーブルのストレージスナップショット作成時に、人為的な遅延 (ミリ秒単位) を挿入します。
テストおよびデバッグ専用です。

設定可能な値:

* 0 - 遅延なし (デフォルト)
* N - ミリ秒単位の遅延

<div id="merge_tree_use_const_size_tasks_for_remote_reading">
  ## merge\_tree\_use\_const\_size\_tasks\_for\_remote\_reading
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

リモートテーブルから読み取る際に、一定サイズのタスクを使用するかどうか。

<div id="merge_tree_use_deserialization_prefixes_cache">
  ## merge\_tree\_use\_deserialization\_prefixes\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "MergeTree におけるデシリアライゼーションプレフィックスキャッシュの使用を制御する新しい設定"}]}]} />

MergeTree でリモートディスクから読み取る際に、ファイルのプレフィックス内のカラムメタデータをキャッシュする機能を有効にします。

<div id="merge_tree_use_prefixes_deserialization_thread_pool">
  ## merge\_tree\_use\_prefixes\_deserialization\_thread\_pool
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "MergeTree におけるプレフィックスの並列デシリアライゼーション用スレッドプールの使用を制御する新しい設定"}]}]} />

MergeTree の wide パーツでプレフィックスを並列に読み取る際に、スレッドプールを使用するようにします。このスレッドプールのサイズは、サーバー設定 `max_prefixes_deserialization_thread_pool_size` で制御されます。

<div id="merge_tree_use_v1_object_and_dynamic_serialization">
  ## merge\_tree\_use\_v1\_object\_and\_dynamic\_serialization
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "JSON および Dynamic 型向けの新しいシリアル化バージョン V2 を追加"}]}]} />

有効にすると、MergeTree では V2 の代わりに JSON 型および Dynamic 型のシリアル化バージョン V1 が使用されます。この設定の変更は、サーバーの再起動後にのみ反映されます。
