> ## 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.

# read_in_* セッション設定

> read_in_* の自動生成グループに含まれる 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>;
};

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

<div id="read_in_order_two_level_merge_threshold">
  ## read\_in\_order\_two\_level\_merge\_threshold
</div>

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

主キーの順序でマルチスレッド読み取りを行う際に、事前マージ ステップを実行するために読み取る最小パーツ数。

<div id="read_in_order_use_buffering">
  ## read\_in\_order\_use\_buffering
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1"},{"label": "主キー順に読み取る際、マージ前にバッファリングを使用する"}]}]} />

主キー順に読み取る際、マージ前にバッファリングを使用します。これによりクエリ実行の並列度が向上し

<div id="read_in_order_use_virtual_row">
  ## read\_in\_order\_use\_virtual\_row
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "主キーまたはその単調関数の順に読み取る際に仮想行を使用します。複数のパーツを検索する場合、関連するパーツにのみアクセスするため有用です。"}]}]} />

主キーまたはその単調関数の順に読み取る際に仮想行を使用します。複数のパーツを検索する場合、関連するパーツにのみアクセスするため有用です。

<div id="read_in_order_use_virtual_row_per_block">
  ## read\_in\_order\_use\_virtual\_row\_per\_block
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "read-in-order 中の各ブロックの読み取り後に（各パーツの先頭時だけでなく）仮想行 を出力し、MergingSortedTransform がより頻繁にソースの優先順位を付け直せるようにします。"}]}]} />

`read_in_order_use_virtual_row` とあわせて有効にすると、各ブロックの読み取り後に 仮想行 を出力します (各パーツの先頭時のみではありません) 。
これにより、`MergingSortedTransform` がより頻繁にソースの優先順位を付け直せるようになり、下流のフィルタで多くの行が破棄され、データがパーツ間で不均一に分散している場合に有用です。
なお、これを有効にすると、読み取り時の `read_in_order_use_buffering` の最適化と事前マージ (`read_in_order_two_level_merge_threshold`) は無効になります。
