> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# セッション設定

> ``system.settings`` テーブルに含まれる設定。

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  const cells = [["Type", <Badge color="surface">{type}</Badge>], ["Default value", <Badge color="surface">{default_value}</Badge>]];
  if (changeable_without_restart) {
    const isYes = String(changeable_without_restart).trim().toLowerCase() === "yes";
    const badge = isYes ? <Badge icon="check" stroke color="green" size="sm">Yes</Badge> : <Badge icon="x" stroke color="red" size="sm">No</Badge>;
    cells.push(["Changeable without restart", badge]);
  }
  return <table>
      <thead>
        <tr>
          {cells.map(([h]) => <th key={h}>{h}</th>)}
        </tr>
      </thead>
      <tbody>
        <tr>
          {cells.map(([h, v]) => <td key={h}>{v}</td>)}
        </tr>
      </tbody>
    </table>;
};

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 only'}
        </div>;
};

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Beta feature. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Learn more.
                    </a>
                </u>
            </span>
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Experimental feature. <u><a href="/docs/beta-and-experimental-features#experimental-features">Learn more.</a></u>
        </div>;
};

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

<div id="add_http_cors_header">
  ## add\_http\_cors\_header
</div>

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

HTTP CORS ヘッダーを追加します。

<div id="additional_result_filter">
  ## additional\_result\_filter
</div>

`SELECT`クエリの結果に適用される追加のフィルタ式です。
この設定はどのサブクエリにも適用されません。

**Example**

```sql theme={null}
INSERT INTO table_1 VALUES (1, 'a'), (2, 'bb'), (3, 'ccc'), (4, 'dddd');
SElECT * FROM table_1;
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 2 │ bb   │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

```sql theme={null}
SELECT *
FROM table_1
SETTINGS additional_result_filter = 'x != 2'
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

<div id="additional_table_filters">
  ## additional\_table\_filters
</div>

<SettingsInfoBlock type="Map" default_value="{}" />

指定したテーブルの読み取り後に適用される
追加のフィルタ式です。

**例**

```sql theme={null}
INSERT INTO table_1 VALUES (1, 'a'), (2, 'bb'), (3, 'ccc'), (4, 'dddd');
SELECT * FROM table_1;
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 2 │ bb   │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

```sql theme={null}
SELECT *
FROM table_1
SETTINGS additional_table_filters = {'table_1': 'x != 2'}
```

```response theme={null}
┌─x─┬─y────┐
│ 1 │ a    │
│ 3 │ ccc  │
│ 4 │ dddd │
└───┴──────┘
```

<div id="aggregate_function_input_format">
  ## aggregate\_function\_input\_format
</div>

<SettingsInfoBlock type="AggregateFunctionInputFormat" default_value="state" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "state"},{"label": "INSERT 操作時の AggregateFunction の入力フォーマットを制御するための新しい設定です。デフォルトでは state に設定されます"}]}]} />

INSERT 操作時の AggregateFunction 入力のフォーマットです。

設定可能な値:

* `state` — シリアライズされた state を含むバイナリ文字列 (デフォルト) 。AggregateFunction の値をバイナリデータとして受け取る、標準の動作です。
* `value` — このフォーマットでは、aggregate function の引数の単一の値、または引数が複数ある場合はそれらの Tuple を受け取ります。これらは対応する IDataType または DataTypeTuple を使用してデシリアライズされ、その後集計されて state が形成されます。
* `array` — このフォーマットでは、上記の `value` オプションで説明したとおり、値の Array を受け取ります。Array のすべての要素が集計されて state が形成されます。

**例**

次の structure を持つ table の場合:

```sql theme={null}
CREATE TABLE example (
    user_id UInt64,
    avg_session_length AggregateFunction(avg, UInt32)
);
```

`aggregate_function_input_format = 'value'` の場合：

```sql theme={null}
INSERT INTO example FORMAT CSV
123,456
```

`aggregate_function_input_format = 'array'` の場合:

```sql theme={null}
INSERT INTO example FORMAT CSV
123,"[456,789,101]"
```

注: `value` および `array` フォーマットは、挿入時に値の生成と集約が必要になるため、デフォルトの `state` フォーマットよりも低速です。

<div id="aggregate_functions_null_for_empty">
  ## aggregate\_functions\_null\_for\_empty
</div>

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

クエリ内のすべての aggregate function を書き換え、[-OrNull](/ja/reference/functions/aggregate-functions/combinators#-ornull) 接尾辞を付加するかどうかを切り替えます。SQL 標準との互換性のために有効にしてください。
これは、分散クエリで一貫した結果を得るために、クエリの書き換え ([count\_distinct\_implementation](#count_distinct_implementation) 設定と同様) によって実装されています。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

**例**

次の aggregate function を含むクエリを考えてみましょう:

```sql theme={null}
SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;
```

`aggregate_functions_null_for_empty = 0` の場合、次のようになります。

```text theme={null}
┌─SUM(-1)─┬─MAX(0)─┐
│       0 │      0 │
└─────────┴────────┘
```

`aggregate_functions_null_for_empty = 1` の場合、結果は次のようになります：

```text theme={null}
┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│          NULL │         NULL │
└───────────────┴──────────────┘
```

<div id="aggregation_in_order_max_block_bytes">
  ## aggregation\_in\_order\_max\_block\_bytes
</div>

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

主キー順の集約中に蓄積される block の最大サイズ (バイト単位) 。block サイズを小さくすると、集約の最終マージ段階をより並列化しやすくなります。

<div id="aggregation_memory_efficient_merge_threads">
  ## aggregation\_memory\_efficient\_merge\_threads
</div>

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

メモリ効率モードで中間の集約結果をマージする際に使用するスレッド数。値が大きいほど、消費メモリも増えます。0 は 'max\_threads' と同じ意味です。

<div id="ai_function_max_api_calls_per_query">
  ## ai\_function\_max\_api\_calls\_per\_query
</div>

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

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

AI 関数がクエリごとに発行できる HTTP リクエストの最大数です。無効にするには 0 に設定します。

<div id="ai_function_max_input_tokens_per_query">
  ## ai\_function\_max\_input\_tokens\_per\_query
</div>

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

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

1 つのクエリ内における、すべての AI 関数 API 呼び出しの入力 (プロンプト) トークン総数の上限です。これはプロバイダからの応答に基づいて累積的に追跡されます。各呼び出しの入力トークン数は事前にわからないため、この上限は 1 回の呼び出し分の入力トークン数だけ超過する可能性がある点に注意してください。無効にするには 0 に設定します。

<div id="ai_function_max_output_tokens_per_query">
  ## ai\_function\_max\_output\_tokens\_per\_query
</div>

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

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

1 回のクエリ内における、すべての AI 関数 API 呼び出しでの出力 (completion) トークン総数の上限です。provider からのレスポンスに基づいて累積で追跡されます。各呼び出しの出力トークン数は事前にはわからないため、この上限は 1 回の呼び出し分の出力トークン数だけ超過する場合がある点に注意してください。無効にするには 0 に設定します。

<div id="ai_function_max_retries">
  ## ai\_function\_max\_retries
</div>

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

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

個々の API リクエストで一時的なエラーが発生した場合の、最大再試行回数です。各再試行では、`ai_function_retry_initial_delay_ms` を初期値とする指数バックオフを使用します。

<div id="ai_function_request_timeout_sec">
  ## ai\_function\_request\_timeout\_sec
</div>

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

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

AI 関数が実行する個々の HTTP リクエスト (AI Chat completions および埋め込み API 呼び出し) のタイムアウト時間を秒単位で指定します。リクエストがこの時間内に完了しない場合は失敗と見なされ、`ai_function_max_retries` に従って再試行されることがあります。

<div id="ai_function_retry_initial_delay_ms">
  ## ai\_function\_retry\_initial\_delay\_ms
</div>

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

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

失敗した AI 関数 API リクエストを初回に再試行するまでの初期遅延時間 (ミリ秒) です。以降の試行では、遅延時間は試行のたびに 2 倍になります (指数バックオフ) 。たとえば、既定の設定では 1000ms、2000ms、4000ms です。

<div id="ai_function_throw_on_error">
  ## ai\_function\_throw\_on\_error
</div>

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

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

true の場合 (デフォルト) 、すべての再試行を使い切っても AI 関数の呼び出しが恒久的に失敗すると、例外を発生させてクエリを中止します。false の場合、失敗した行にはカラム型のデフォルト値 (String の場合は空文字列) が設定され、処理は継続されます。

<div id="ai_function_throw_on_quota_exceeded">
  ## ai\_function\_throw\_on\_quota\_exceeded
</div>

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

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

true (デフォルト) の場合、AI 関数のクォータ上限 (`ai_function_max_input_tokens_per_query`、`ai_function_max_output_tokens_per_query`、または `ai_function_max_api_calls_per_query`) を超えると、例外が発生してクエリは中止されます。false の場合、残りの行にはカラムの型のデフォルト値 (String の場合は空文字列) が設定されます。

<div id="allow_aggregate_partitions_independently">
  ## allow\_aggregate\_partitions\_independently
</div>

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

パーティションキーがGROUP BYキーに適している場合、別々のスレッドでパーティションごとに独立して集約できるようにします。パーティション数がコア数に近く、各パーティションのサイズがほぼ同じ場合に効果的です

<div id="allow_archive_path_syntax">
  ## allow\_archive\_path\_syntax
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1"},{"label": "アーカイブパス構文を無効化できる新しい設定が追加されました。"}]}, {"id": "row-2","items": [{"label": "24.5"},{"label": "1"},{"label": "アーカイブパス構文を無効化できる新しい設定が追加されました。"}]}]} />

File/S3 エンジン/テーブル関数では、アーカイブの拡張子が正しい場合、'::' を含むパスを `<archive> :: <file>` として解析します。

<div id="allow_asynchronous_read_from_io_pool_for_merge_tree">
  ## allow\_asynchronous\_read\_from\_io\_pool\_for\_merge\_tree
</div>

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

MergeTree テーブルからの読み取りにバックグラウンド I/O プールを使用します。この設定により、I/O ボトルネックのあるクエリのパフォーマンスが向上する場合があります

<div id="allow_calculating_subcolumns_sizes_for_merge_tree_reading">
  ## allow\_calculating\_subcolumns\_sizes\_for\_merge\_tree\_reading
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "読み取りタスクの分割を改善するため、MergeTree 読み取り時のサブカラムサイズの計算を許可"}]}]} />

有効にすると、ClickHouse は各サブカラムの読み取りに必要なファイルサイズを計算し、タスクサイズおよび block サイズをより適切に算出します。

<div id="allow_changing_replica_until_first_data_packet">
  ## allow\_changing\_replica\_until\_first\_data\_packet
</div>

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

有効な場合、ヘッジドリクエストでは、すでに Progress が発生していても (ただし、`receive_data_timeout` の timeout の間 Progress が更新されていない場合) 、最初の Data パケットを受信するまでは新しい connection を確立できます。無効な場合は、最初に Progress が発生した時点でレプリカの切り替えを無効にします。

<div id="allow_create_index_without_type">
  ## allow\_create\_index\_without\_type
</div>

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

TYPE を指定しない CREATE INDEX クエリを許可します。このクエリは無視されます。SQL 互換性テスト用です。

<div id="allow_custom_error_code_in_throwif">
  ## allow\_custom\_error\_code\_in\_throwif
</div>

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

関数 throwIf() でカスタムエラーコードを有効にします。true の場合、スローされる例外に想定外のエラーコードが含まれることがあります。

<div id="allow_ddl">
  ## allow\_ddl
</div>

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

true に設定すると、ユーザーは DDL クエリを実行できます。

<div id="allow_deprecated_database_ordinary">
  ## allow\_deprecated\_database\_ordinary
</div>

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

非推奨のOrdinaryエンジンを使用するデータベースの作成を許可します

<div id="allow_deprecated_error_prone_window_functions">
  ## allow\_deprecated\_error\_prone\_window\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "0"},{"label": "エラーを起こしやすい非推奨のウィンドウ関数（neighbor、runningAccumulate、runningDifferenceStartingWithFirstValue、runningDifference）の使用を許可します"}]}]} />

エラーを起こしやすい非推奨のウィンドウ関数 (neighbor、runningAccumulate、runningDifferenceStartingWithFirstValue、runningDifference) の使用を許可します

<div id="allow_deprecated_snowflake_conversion_functions">
  ## allow\_deprecated\_snowflake\_conversion\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "非推奨の関数 snowflakeToDateTime[64] と dateTime[64]ToSnowflake を無効化しました。"}]}]} />

関数 `snowflakeToDateTime`、`snowflakeToDateTime64`、`dateTimeToSnowflake`、`dateTime64ToSnowflake` は非推奨で、デフォルトで無効になっています。
代わりに、`snowflakeIDToDateTime`、`snowflakeIDToDateTime64`、`dateTimeToSnowflakeID`、`dateTime64ToSnowflakeID` を使用してください。

非推奨の関数を再び有効にするには (たとえば移行期間中) 、この設定を `true` にしてください。

<div id="allow_deprecated_syntax_for_merge_tree">
  ## allow\_deprecated\_syntax\_for\_merge\_tree
</div>

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

非推奨のエンジン定義構文で \*MergeTree テーブルを作成できるようにします

<div id="allow_distributed_ddl">
  ## allow\_distributed\_ddl
</div>

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

true に設定すると、ユーザーは分散 DDL クエリを実行できます。

<div id="allow_drop_detached">
  ## allow\_drop\_detached
</div>

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

ALTER TABLE ... DROP DETACHED PART\[ITION] ... クエリの実行を許可します

<div id="allow_dynamic_type_in_join_keys">
  ## allow\_dynamic\_type\_in\_join\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "デフォルトでは JOIN の結合キーで Dynamic type を使用不可"}]}]} />

JOIN の結合キーで Dynamic type を使用できるようにします。互換性のために追加されました。Dynamic type を JOIN の結合キーで使用することは、他の型との比較で予期しない結果になる可能性があるため、推奨されません。

<div id="allow_execute_multiif_columnar">
  ## allow\_execute\_multiif\_columnar
</div>

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

multiIf 関数の列指向実行を許可します

<div id="allow_experimental_ai_functions">
  ## allow\_experimental\_ai\_functions
</div>

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

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

実験的な AI 関数 (例: `aiGenerateContent`) を有効にします。これらの関数は、AI プロバイダーに対して外部 HTTP リクエストを実行します。

<div id="allow_experimental_analyzer">
  ## allow\_experimental\_analyzer
</div>

**別名**: `enable_analyzer`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "アナライザとプランナをデフォルトで有効にします。"}]}]} />

新しいクエリアナライザを有効にします。

<div id="allow_experimental_cleanup_old_data_files_compaction">
  ## allow\_experimental\_cleanup\_old\_data\_files\_compaction
</div>

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

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

Iceberg compaction 中に古い data files を削除できるようにします。

<div id="allow_experimental_codecs">
  ## allow\_experimental\_codecs
</div>

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

true に設定すると、実験的な圧縮コーデックを指定できるようになります (ただし、現時点ではそのようなコーデックはまだ存在しないため、このオプションは何の効果もありません) 。

<div id="allow_experimental_correlated_subqueries">
  ## allow\_experimental\_correlated\_subqueries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "相関サブクエリのサポートをベータに変更しました。"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "相関サブクエリの実行を許可する新しい設定を追加しました。"}]}]} />

相関サブクエリを実行できるようにします。

<div id="allow_experimental_database_glue_catalog">
  ## allow\_experimental\_database\_glue\_catalog
</div>

**別名**: `allow_database_glue_catalog`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "0"},{"label": "catalog_type = 'glue' の実験的なデータベースエンジン DataLakeCatalog の使用を許可します"}]}]} />

catalog\_type = 'glue' の実験的なデータベースエンジン DataLakeCatalog の使用を許可します

Cloud でのデフォルト値: `1`.

<div id="allow_experimental_database_hms_catalog">
  ## allow\_experimental\_database\_hms\_catalog
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "catalog_type = 'hive' の実験的なデータベースエンジン DataLakeCatalog を有効にします"}]}]} />

catalog\_type = 'hms' の実験的なデータベースエンジン DataLakeCatalog を有効にします

<div id="allow_experimental_database_iceberg">
  ## allow\_experimental\_database\_iceberg
</div>

**別名**: `allow_database_iceberg`

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

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

catalog\_type = 'iceberg' の実験的なデータベースエンジン DataLakeCatalog の使用を許可します

Cloud でのデフォルト値: `1`.

<div id="allow_experimental_database_materialized_postgresql">
  ## allow\_experimental\_database\_materialized\_postgresql
</div>

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

Engine=MaterializedPostgreSQL(...) を指定したデータベースの作成を許可します。

<div id="allow_experimental_database_paimon_rest_catalog">
  ## allow\_experimental\_database\_paimon\_rest\_catalog
</div>

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

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

catalog\_type = 'paimon\_rest' の実験的なデータベースエンジン DataLakeCatalog を有効にします

<div id="allow_experimental_database_unity_catalog">
  ## allow\_experimental\_database\_unity\_catalog
</div>

**別名**: `allow_database_unity_catalog`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "0"},{"label": "catalog_type = 'unity' の実験的なデータベースエンジン DataLakeCatalog を有効にします"}]}]} />

catalog\_type = 'unity' の実験的なデータベースエンジン DataLakeCatalog を有効にします

Cloud でのデフォルト値: `1`.

<div id="allow_experimental_delta_kernel_rs">
  ## allow\_experimental\_delta\_kernel\_rs
</div>

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

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

実験的な delta-kernel-rs 実装を有効にします。

<div id="allow_experimental_delta_lake_writes">
  ## allow\_experimental\_delta\_lake\_writes
</div>

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

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

delta-kernel による書き込み機能を有効にします。

<div id="allow_experimental_expire_snapshots">
  ## allow\_experimental\_expire\_snapshots
</div>

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

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

実験的な Iceberg コマンド `ALTER TABLE ... EXECUTE expire_snapshots` を実行できるようにします。

<div id="allow_experimental_funnel_functions">
  ## allow\_experimental\_funnel\_functions
</div>

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

ファネル分析用の実験的な関数を有効にします。

<div id="allow_experimental_geo_types_in_iceberg">
  ## allow\_experimental\_geo\_types\_in\_iceberg
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "Iceberg の geometry/geography フィールドを Geometry 型としてパースできるようにする新しい設定。"}]}]} />

Iceberg の `geometry` および `geography` フィールド型を、ClickHouse の `Geometry` (Variant) 型としてパースできるようにします。

<div id="allow_experimental_hash_functions">
  ## allow\_experimental\_hash\_functions
</div>

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

実験的なハッシュ関数を有効にする

<div id="allow_experimental_iceberg_compaction">
  ## allow\_experimental\_iceberg\_compaction
</div>

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

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

Iceberg テーブルに対して 'OPTIMIZE' を明示的に実行できるようにします。

<div id="allow_experimental_join_right_table_sorting">
  ## allow\_experimental\_join\_right\_table\_sorting
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "`true` に設定され、`join_to_sort_minimum_perkey_rows` と `join_to_sort_maximum_table_rows` の条件が満たされている場合、LEFT または INNER のハッシュ結合のパフォーマンスを向上させるため、右テーブルをキー順に並べ替えます"}]}]} />

`true` に設定され、`join_to_sort_minimum_perkey_rows` と `join_to_sort_maximum_table_rows` の条件が満たされている場合、LEFT または INNER のハッシュ結合のパフォーマンスを向上させるため、右テーブルをキー順に並べ替えます。

<div id="allow_experimental_json_lazy_type_hints">
  ## allow\_experimental\_json\_lazy\_type\_hints
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "遅延JSON型ヒント向けの新しい実験的設定"}]}]} />

JSON型に対する実験的な遅延型ヒントを有効にします。この機能では、型ヒントの評価を遅延させることで、JSON型変換を最適化できます。

<div id="allow_experimental_kafka_offsets_storage_in_keeper">
  ## allow\_experimental\_kafka\_offsets\_storage\_in\_keeper
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "コミット済みオフセットを ClickHouse Keeper に保存する実験的な Kafka ストレージエンジンの使用を許可します"}]}]} />

Kafka 関連のオフセットを ClickHouse Keeper に保存する実験的機能を有効にします。有効にすると、ClickHouse Keeper の path とレプリカ名を Kafka テーブルエンジンに指定できます。その結果、通常の Kafka エンジンの代わりに、コミット済みオフセットを主に ClickHouse Keeper に保存する新しい種類のストレージエンジンが使用されます

<div id="allow_experimental_kusto_dialect">
  ## allow\_experimental\_kusto\_dialect
</div>

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

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

SQL の代替となる Kusto Query Language (KQL) を有効にします。

<div id="allow_experimental_materialized_postgresql_table">
  ## allow\_experimental\_materialized\_postgresql\_table
</div>

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

MaterializedPostgreSQLテーブルエンジンを使用できるようにします。この機能は実験的であるため、デフォルトでは無効になっています

<div id="allow_experimental_nlp_functions">
  ## allow\_experimental\_nlp\_functions
</div>

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

自然言語処理向けの実験的な関数を有効にします。

<div id="allow_experimental_nullable_tuple_type">
  ## allow\_experimental\_nullable\_tuple\_type
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "新しい実験的設定"}]}]} />

テーブルで [Nullable](/ja/reference/data-types/nullable) [Tuple](/ja/reference/data-types/tuple) カラムを作成できるようにします。

この設定は、抽出された Tuple のサブカラムを `Nullable` にできるかどうかは制御しません (たとえば、Dynamic、Variant、JSON、または Tuple カラムから抽出されたもの) 。
抽出された Tuple のサブカラムを `Nullable` にできるかどうかを制御するには、`allow_nullable_tuple_in_extracted_subcolumns` を使用してください。

<div id="allow_experimental_object_storage_queue_hive_partitioning">
  ## allow\_experimental\_object\_storage\_queue\_hive\_partitioning
</div>

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

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

S3Queue/AzureQueue エンジンで Hive パーティション化を使用できるようにします

<div id="allow_experimental_paimon_storage_engine">
  ## allow\_experimental\_paimon\_storage\_engine
</div>

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

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

Paimon\* テーブルエンジンでテーブルを作成できるようにします。

<div id="allow_experimental_parallel_reading_from_replicas">
  ## allow\_experimental\_parallel\_reading\_from\_replicas
</div>

**別名**: `enable_parallel_replicas`

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

SELECT クエリの実行時に、各分片から最大 `max_parallel_replicas` 個のレプリカを使用します。読み取りは並列化され、動的に調整されます。0 - 無効、1 - 有効 (障害時は自動的に無効化) 、2 - 有効 (障害時に例外をスロー)

<div id="allow_experimental_polyglot_dialect">
  ## allow\_experimental\_polyglot\_dialect
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "polyglot SQL トランスパイラ dialect を有効にする新しい設定。"}]}]} />

polyglot SQL トランスパイラを有効にします。30 種類以上の SQL 方言 (MySQL、PostgreSQL、SQLite、Snowflake、DuckDB など) の SQL を ClickHouse SQL に変換します。

<div id="allow_experimental_prql_dialect">
  ## allow\_experimental\_prql\_dialect
</div>

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

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

PRQL (SQL の代替) を有効にします。

<div id="allow_experimental_query_deduplication">
  ## allow\_experimental\_query\_deduplication
</div>

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

part UUID に基づく SELECT クエリの実験的なデータ重複排除

<div id="allow_experimental_time_series_aggregate_functions">
  ## allow\_experimental\_time\_series\_aggregate\_functions
</div>

**別名**: `allow_experimental_ts_to_grid_aggregate_function`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "実験的な timeSeries* 集約関数を有効にするための新しい設定。"}]}]} />

Prometheus ライクな時系列のリサンプリング、rate、delta 計算のための実験的な timeSeries\* 集約関数。

<div id="allow_experimental_time_series_table">
  ## allow\_experimental\_time\_series\_table
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "TimeSeries テーブルエンジンを許可する設定を追加"}]}]} />

[TimeSeries](/ja/reference/engines/table-engines/integrations/time-series) テーブルエンジンを使用するテーブルの作成を許可します。設定可能な値:

* 0 — [TimeSeries](/ja/reference/engines/table-engines/integrations/time-series) テーブルエンジンは無効です。
* 1 — [TimeSeries](/ja/reference/engines/table-engines/integrations/time-series) テーブルエンジンは有効です。

<div id="allow_experimental_unique_key">
  ## allow\_experimental\_unique\_key
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "MergeTree ファミリーのテーブルで実験的な UNIQUE KEY 句を有効にするための新しい設定"}]}]} />

MergeTree ファミリーのエンジンを使用するテーブルで `UNIQUE KEY` 句を指定して作成できるようにします。

<div id="allow_experimental_window_view">
  ## allow\_experimental\_window\_view
</div>

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

WINDOW VIEW を有効にします。まだ十分に実用段階には達していません。

<div id="allow_experimental_ytsaurus_dictionary_source">
  ## allow\_experimental\_ytsaurus\_dictionary\_source
</div>

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

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

YTsaurus とのインテグレーション用の実験的な Dictionary ソース。

<div id="allow_experimental_ytsaurus_table_engine">
  ## allow\_experimental\_ytsaurus\_table\_engine
</div>

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

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

YTsaurusとのインテグレーション向けの実験的なテーブルエンジンです。

<div id="allow_experimental_ytsaurus_table_function">
  ## allow\_experimental\_ytsaurus\_table\_function
</div>

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

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

YTsaurus とのインテグレーションのための実験的なテーブルエンジン。

<div id="allow_fuzz_query_functions">
  ## allow\_fuzz\_query\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "fuzzQuery 関数を有効にするための新しい設定。"}]}]} />

クエリ文字列にランダムな AST のミューテーションを適用する `fuzzQuery` 関数を有効にします。

<div id="allow_general_join_planning">
  ## allow\_general\_join\_planning
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "ハッシュ結合アルゴリズムが有効な場合に、より汎用的な JOIN 計画アルゴリズムを許可します。"}]}]} />

より複雑な条件を扱える、より汎用的な JOIN 計画アルゴリズムを許可しますが、これはハッシュ結合でのみ機能します。ハッシュ結合が有効になっていない場合は、この設定値にかかわらず、通常の JOIN 計画アルゴリズムが使用されます。

<div id="allow_get_client_http_header">
  ## allow\_get\_client\_http\_header
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "新しい関数が導入されました。"}]}]} />

現在のHTTPリクエストのヘッダーの値を取得できる関数 `getClientHTTPHeader` の使用を許可します。`Cookie` など一部のヘッダーには機密情報が含まれる可能性があるため、セキュリティ上の理由からデフォルトでは有効になっていません。なお、`X-ClickHouse-*` および `Authentication` ヘッダーは常に制限されており、この関数では取得できません。

<div id="allow_hyperscan">
  ## allow\_hyperscan
</div>

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

Hyperscan ライブラリを使用する関数を許可します。コンパイル時間が長くなりすぎたり、リソースを過剰に消費したりするのを避けるには、無効にしてください。

<div id="allow_iceberg_remove_orphan_files">
  ## allow\_iceberg\_remove\_orphan\_files
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Iceberg の孤立ファイル削除を有効化する新しい設定"}]}]} />

Icebergテーブルに対して 'ALTER TABLE ... EXECUTE remove\_orphan\_files()' を使用できるようにします。

<div id="allow_insert_into_iceberg">
  ## allow\_insert\_into\_iceberg
</div>

**別名**: `allow_experimental_insert_into_iceberg`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Iceberg への insert がベータに移行しました"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "新しい設定"}]}]} />

Iceberg に対する `insert` クエリの実行を許可します。

<div id="allow_introspection_functions">
  ## allow\_introspection\_functions
</div>

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

クエリのプロファイリングに対する[イントロスペクション関数](/ja/reference/functions/regular-functions/introspection)の有効/無効を切り替えます。

設定可能な値:

* 1 — イントロスペクション関数が有効です。
* 0 — イントロスペクション関数が無効です。

**関連項目**

* [サンプリングクエリプロファイラ](/ja/concepts/features/performance/troubleshoot/sampling-query-profiler)
* システムテーブル [trace\_log](/ja/reference/system-tables/trace_log)

<div id="allow_key_condition_coalesce_rewrite">
  ## allow\_key\_condition\_coalesce\_rewrite
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "索引解析の前に、`coalesce(a_1, ..., a_N) <op> const` 形式の述語（同等の `ifNull` や、定数が左側にある場合を含む）を論理和に書き換えるための新しい設定です。これにより、各 `a_i` に対してカラムごとの主キーおよびスキップ索引を利用できます。`coalesce(a, 42, b)` や `coalesce(a, b, 42)` のような一部が定数の形式にも対応しています。"}]}]} />

索引解析の前に、`coalesce(a_1, ..., a_N) <op> const` 形式の述語 (同等の `ifNull` や、定数が左側にある場合を含む) を論理和 `(a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const)` に書き換えることで、各 `a_i` に対してカラムごとの主キーおよびスキップ索引を利用できるようにします。`coalesce(a, 42, b)` や `coalesce(a, b, 42)` のような一部が定数の形式にも対応しています。引数リストは `coalesce` 自体と同様に正規化され (`NULL` リテラルは削除され、最初の非 `Nullable` な引数以降は削除されます) 、末尾に非 `NULL` の定数がある場合は、それが最後の分岐として出力されます。この書き換えは索引のプルーニングにのみ追加で適用され、ランタイムフィルタリングでは引き続き元の述語が使用されます。

<div id="allow_materialized_view_with_bad_select">
  ## allow\_materialized\_view\_with\_bad\_select
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "存在しないカラムまたはテーブルを参照する MV の作成を許可しない"}]}, {"id": "row-2","items": [{"label": "24.9"},{"label": "1"},{"label": "CREATE MATERIALIZED VIEW における、より厳格な検証をサポートする（ただし、まだ有効にはしない）"}]}]} />

存在しないテーブルまたはカラムを参照する SELECT クエリを含む CREATE MATERIALIZED VIEW を許可します。ただし、構文としては有効である必要があります。リフレッシュ可能な MV には適用されません。また、MV のスキーマを SELECT クエリから推論する必要がある場合 (つまり、CREATE にカラムリストがなく、かつ TO テーブルもない場合) にも適用されません。ソーステーブルより先に MV を作成するために使用できます。

<div id="allow_named_collection_override_by_default">
  ## allow\_named\_collection\_override\_by\_default
</div>

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

デフォルトで、named collections のフィールドのオーバーライドを許可します。

<div id="allow_non_metadata_alters">
  ## allow\_non\_metadata\_alters
</div>

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

テーブルのメタデータだけでなく、ディスク上のデータにも影響する ALTER の実行を許可します

<div id="allow_nonconst_timezone_arguments">
  ## allow\_nonconst\_timezone\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "toTimeZone()、fromUnixTimestamp*()、snowflakeToDateTime*() などの一部の時刻関連関数で、非定数のタイムゾーン引数を許可します。"}]}]} />

toTimeZone()、fromUnixTimestamp\*()、snowflakeToDateTime\*() などの一部の時刻関連関数で、非定数のタイムゾーン引数を許可します。
この設定は、互換性上の理由からのみ存在します。ClickHouse では、タイムゾーンはデータ型、より正確にはカラムのプロパティです。
この設定を有効にすると、1 つのカラム内の異なる値にそれぞれ異なるタイムゾーンを設定できるかのような誤解を招きます。
したがって、この設定は有効にしないでください。

<div id="allow_nondeterministic_mutations">
  ## allow\_nondeterministic\_mutations
</div>

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

`dictGet` のような非決定論的関数を、レプリケートテーブルに対する mutation で使用できるようにするユーザーレベルの設定です。

たとえば、辞書はノード間で同期が取れていない場合があるため、そこから値を取得する mutation は、デフォルトではレプリケートテーブルで許可されていません。この設定を有効にすると、そのような動作を許可できますが、使用するデータがすべてのノードで同期されていることを保証する責任はユーザーにあります。

**例**

```xml theme={null}
<profiles>
    <default>
        <allow_nondeterministic_mutations>1</allow_nondeterministic_mutations>

        <!-- ... -->
    </default>

    <!-- ... -->

</profiles>
```

<div id="allow_nondeterministic_optimize_skip_unused_shards">
  ## allow\_nondeterministic\_optimize\_skip\_unused\_shards
</div>

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

分片キーで、非決定論的な関数 (`rand` や `dictGet` など。後者は更新時にいくつか注意点があります) の使用を許可します。

設定可能な値:

* 0 — 不可。
* 1 — 可。

<div id="allow_nullable_tuple_in_extracted_subcolumns">
  ## allow\_nullable\_tuple\_in\_extracted\_subcolumns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "抽出された Tuple サブカラムを Nullable にできるかどうかを制御する新しい設定。"}]}]} />

`Tuple(...)` 型の抽出サブカラムを `Nullable(Tuple(...))` 型として扱えるかどうかを制御します。

* `false`: `Tuple(...)` を返し、サブカラムが存在しない行ではデフォルトのタプル値を使用します。
* `true`: `Nullable(Tuple(...))` を返し、サブカラムが存在しない行では `NULL` を使用します。

この設定で制御されるのは、抽出サブカラムの動作のみです。
テーブル内で `Nullable(Tuple(...))` カラムを作成できるかどうかは制御しません。こちらは `allow_experimental_nullable_tuple_type` で制御されます。

ClickHouse は、サーバー起動時に読み込まれたこの設定値を使用します。
`SET` またはクエリレベルの `SETTINGS` で変更しても、抽出サブカラムの動作は変わりません。
抽出サブカラムの動作を変更するには、起動プロファイル設定 (たとえば users.xml) 内の `allow_nullable_tuple_in_extracted_subcolumns` を更新し、サーバーを再起動してください。

<div id="allow_prefetched_read_pool_for_local_filesystem">
  ## allow\_prefetched\_read\_pool\_for\_local\_filesystem
</div>

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

すべてのパーツがローカルファイルシステム上にある場合は、プリフェッチ用のスレッドプールを優先します

<div id="allow_prefetched_read_pool_for_remote_filesystem">
  ## allow\_prefetched\_read\_pool\_for\_remote\_filesystem
</div>

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

すべてのパーツがリモートファイルシステム上にある場合は、先読み用スレッドプールを優先します

<div id="allow_push_predicate_ast_for_distributed_subqueries">
  ## allow\_push\_predicate\_ast\_for\_distributed\_subqueries
</div>

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

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

analyzer が有効な場合に、分散サブクエリに対する AST レベルでの述語プッシュダウンを許可します

<div id="allow_push_predicate_when_subquery_contains_with">
  ## allow\_push\_predicate\_when\_subquery\_contains\_with
</div>

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

サブクエリにWITH句が含まれている場合に、述語プッシュダウンを許可します

<div id="allow_rank_dense_rank_arguments">
  ## allow\_rank\_dense\_rank\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "新しい設定。26.5 より前では、`RANK` および `DENSE_RANK` ウィンドウ関数は、指定された引数を黙って無視していました（`allow_rank_dense_rank_arguments = 1` と同等）。26.5 以降、SQL 標準ではこれらの関数は引数を取らないため、デフォルトで引数を拒否し、`NUMBER_OF_ARGUMENTS_DOESNT_MATCH` を返します。従来の動作を復元するには、これを `1` に設定してください。"}]}]} />

後方互換性のために、`RANK` および `DENSE_RANK` ウィンドウ関数に引数を渡せるようにします。

SQL 標準では、`RANK` と `DENSE_RANK` は引数を取りません。これらは
`OVER (ORDER BY ...)` ウィンドウのみに基づいて行の順位を付けます。ClickHouse 26.5 より前のバージョンでは、
`RANK(x) OVER (...)` のようなクエリでも引数が黙って受け入れられ、無視されていました。これにより、
ユーザーの混乱を招いていました
(引数が見えているため順位付けに影響しているように見えますが、実際には影響しません) 。

この設定が `false` (デフォルト) の場合、`RANK` と `DENSE_RANK` は引数を受け付けず、
`NUMBER_OF_ARGUMENTS_DOESNT_MATCH` を返します。`true` に設定すると、従来の寛容な動作が
復元され、26.5 より前と同様に引数は黙って無視されます。

<div id="allow_reorder_prewhere_conditions">
  ## allow\_reorder\_prewhere\_conditions
</div>

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

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

条件を WHERE から PREWHERE に移動する際、フィルタリングを最適化できるよう並べ替えを許可します

<div id="allow_settings_after_format_in_insert">
  ## allow\_settings\_after\_format\_in\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.4"},{"label": "0"},{"label": "ClickHouse が `SETTINGS` を値の一部として解釈してしまい紛らわしいため、`INSERT` クエリでは `FORMAT` の後の `SETTINGS` を許可しません"}]}]} />

`INSERT` クエリで、`FORMAT` の後に `SETTINGS` を許可するかどうかを制御します。ただし、`SETTINGS` の一部が値として解釈される可能性があるため、使用は推奨されません。

Example:

```sql theme={null}
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');
```

ただし、次のクエリは `allow_settings_after_format_in_insert` が有効な場合にのみ動作します。

```sql theme={null}
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;
```

設定可能な値:

* 0 — 不可。
* 1 — 可。

<Note>
  この設定は、ユースケースで古い構文に依存している場合にのみ、後方互換性のために使用してください。
</Note>

<div id="allow_simdjson">
  ## allow\_simdjson
</div>

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

AVX2 命令が利用可能な場合に、`JSON*` 関数で simdjson ライブラリを使用できるようにします。無効にすると、rapidjson が使用されます。

<div id="allow_special_serialization_kinds_in_output_formats">
  ## allow\_special\_serialization\_kinds\_in\_output\_formats
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "一部の出力フォーマットで、Sparse/Replicated のような特殊なカラム表現を直接出力できるようにします"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "Sparse/Replicated のような特殊なカラム表現を、フルカラムに変換せずに出力できるようにする設定を追加しました"}]}]} />

Sparse や Replicated のような特殊なシリアライゼーション種別を持つカラムを、フルカラム表現に変換せずに出力できるようにします。
これにより、フォーマット時の不要なデータコピーを避けられます。

<div id="allow_statistics">
  ## allow\_statistics
</div>

**別名**: `allow_experimental_statistics`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "カラム STATISTICS は GA になりました"}]}]} />

カラムに [statistics](/ja/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) を設定して定義し、[statistics](/ja/reference/engines/table-engines/mergetree-family/mergetree#column-statistics) を操作できるようにします。

<div id="allow_statistics_optimize">
  ## allow\_statistics\_optimize
</div>

**別名**: `allow_statistic_optimize`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "この最適化はデフォルトで有効です。"}]}, {"id": "row-2","items": [{"label": "24.6"},{"label": "0"},{"label": "設定名が変更されました。以前の名前は `allow_statistic_optimize` です。"}]}]} />

統計情報を使用してクエリを最適化することを許可します

<div id="allow_suspicious_codecs">
  ## allow\_suspicious\_codecs
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.5"},{"label": "0"},{"label": "意味のない圧縮コーデックの指定を許可しない"}]}]} />

true に設定すると、意味のない圧縮コーデックを指定できるようになります。

<div id="allow_suspicious_fixed_string_types">
  ## allow\_suspicious\_fixed\_string\_types
</div>

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

CREATE TABLE 文で、n > 256 の `FixedString(n)` 型のカラムを作成できるようにします。長さが 256 以上の FixedString は不自然であり、多くの場合は誤用を示しています

<div id="allow_suspicious_indices">
  ## allow\_suspicious\_indices
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "true の場合、同一の式を持つ索引を定義できます"}]}]} />

同一の式を持つプライマリ/セカンダリ索引およびソートキーを拒否します

<div id="allow_suspicious_low_cardinality_types">
  ## allow\_suspicious\_low\_cardinality\_types
</div>

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

8 バイト以下の固定サイズを持つデータ型、つまり数値データ型および `FixedString(8_bytes_or_less)` で [LowCardinality](/ja/reference/data-types/lowcardinality) を使用することを許可または制限します。

固定長でサイズの小さい値に `LowCardinality` を使用しても、通常は非効率です。これは、ClickHouse が各行に対して数値索引を格納するためです。その結果、次のような影響が生じる可能性があります。

* ディスク使用量が増加することがあります。
* Dictionary のサイズによっては、RAM 使用量が増えることがあります。
* 追加の符号化/復号化処理により、一部の関数の動作が遅くなることがあります。

上記の理由により、[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree)-engine テーブルではマージ時間が長くなる可能性があります。

設定可能な値:

* 1 — `LowCardinality` の使用は制限されません。
* 0 — `LowCardinality` の使用は制限されます。

<div id="allow_suspicious_primary_key">
  ## allow\_suspicious\_primary\_key
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "MergeTree の疑わしい PRIMARY KEY/ORDER BY（例: SimpleAggregateFunction）を禁止"}]}]} />

MergeTree の疑わしい `PRIMARY KEY`/`ORDER BY` (例: SimpleAggregateFunction) を許可します。

<div id="allow_suspicious_ttl_expressions">
  ## allow\_suspicious\_ttl\_expressions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.12"},{"label": "0"},{"label": "これは新しい設定であり、以前のバージョンでは許可した場合と同等の動作でした。"}]}]} />

テーブルのどのカラムにも依存しない有効期限 (TTL) 式を拒否します。これは多くの場合、ユーザーの指定ミスを示します。

<div id="allow_suspicious_types_in_group_by">
  ## allow\_suspicious\_types\_in\_group\_by
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "デフォルトでは GROUP BY での Variant/Dynamic 型の使用を許可しない"}]}]} />

GROUP BY キーで [Variant](/ja/reference/data-types/variant) 型および [Dynamic](/ja/reference/data-types/dynamic) 型の使用を許可または禁止します。

<div id="allow_suspicious_types_in_order_by">
  ## allow\_suspicious\_types\_in\_order\_by
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "デフォルトでは ORDER BY キーでの Variant/Dynamic 型の使用を許可しない"}]}]} />

ORDER BY キーでの [Variant](/ja/reference/data-types/variant) 型および [Dynamic](/ja/reference/data-types/dynamic) 型の使用を許可または制限します。

<div id="allow_suspicious_variant_types">
  ## allow\_suspicious\_variant\_types
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "デフォルトでは、紛らわしい Variant 型を含む Variant 型の作成を許可しません"}]}]} />

CREATE TABLE 文で、類似した Variant 型 (たとえば、異なる数値型や日付型) を含む Variant 型を指定できるようにします。この設定を有効にすると、類似した型の値を扱う際にあいまいさが生じる可能性があります。

<div id="allow_unrestricted_reads_from_keeper">
  ## allow\_unrestricted\_reads\_from\_keeper
</div>

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

system.zookeeper テーブルからの無制限な (path に条件を付けない) 読み取りを許可します。便利な場合もありますが、ZooKeeper に対して安全ではありません。

<div id="alter_move_to_space_execute_async">
  ## alter\_move\_to\_space\_execute\_async
</div>

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

ALTER TABLE MOVE ... TO \[DISK|VOLUME] を非同期に実行します

<div id="alter_partition_verbose_result">
  ## alter\_partition\_verbose\_result
</div>

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

パーティションおよびパーツに対する操作が正常に適用されたパーツに関する情報の表示を有効または無効にします。
[ATTACH PARTITION|PART](/ja/reference/statements/alter/partition#attach-partitionpart) および [FREEZE PARTITION](/ja/reference/statements/alter/partition#freeze-partition) に適用されます。

設定可能な値:

* 0 — 詳細表示を無効にします。
* 1 — 詳細表示を有効にします。

**例**

```sql theme={null}
CREATE TABLE test(a Int64, d Date, s String) ENGINE = MergeTree PARTITION BY toYYYYMDECLARE(d) ORDER BY a;
INSERT INTO test VALUES(1, '2021-01-01', '');
INSERT INTO test VALUES(1, '2021-01-01', '');
ALTER TABLE test DETACH PARTITION ID '202101';

ALTER TABLE test ATTACH PARTITION ID '202101' SETTINGS alter_partition_verbose_result = 1;

┌─command_type─────┬─partition_id─┬─part_name────┬─old_part_name─┐
│ ATTACH PARTITION │ 202101       │ 202101_7_7_0 │ 202101_5_5_0  │
│ ATTACH PARTITION │ 202101       │ 202101_8_8_0 │ 202101_6_6_0  │
└──────────────────┴──────────────┴──────────────┴───────────────┘

ALTER TABLE test FREEZE SETTINGS alter_partition_verbose_result = 1;

┌─command_type─┬─partition_id─┬─part_name────┬─backup_name─┬─backup_path───────────────────┬─part_backup_path────────────────────────────────────────────┐
│ FREEZE ALL   │ 202101       │ 202101_7_7_0 │ 8           │ /var/lib/clickhouse/shadow/8/ │ /var/lib/clickhouse/shadow/8/data/default/test/202101_7_7_0 │
│ FREEZE ALL   │ 202101       │ 202101_8_8_0 │ 8           │ /var/lib/clickhouse/shadow/8/ │ /var/lib/clickhouse/shadow/8/data/default/test/202101_8_8_0 │
└──────────────┴──────────────┴──────────────┴─────────────┴───────────────────────────────┴─────────────────────────────────────────────────────────────┘
```

<div id="alter_sync">
  ## alter\_sync
</div>

**別名**: `replication_alter_partitions_sync`

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

[`ALTER`](/ja/reference/statements/alter)、[`OPTIMIZE`](/ja/reference/statements/optimize)、または [`TRUNCATE`](/ja/reference/statements/truncate) クエリによってレプリカ上で実行されるアクションについて、どのように待機するかを指定できます。

設定可能な値:

* `0` — 待機しません。
* `1` — 自身の実行完了を待機します。
* `2` — すべてのレプリカの実行完了を待機します。
* `3` - アクティブなレプリカの実行完了のみ待機します。

Cloud でのデフォルト値: `0`。

<Note>
  `alter_sync` は `Replicated` テーブルおよび `SharedMergeTree` テーブルにのみ適用され、`Replicated` テーブルでも `Shared` テーブルでもないテーブルに対する alter には効果がありません。
</Note>

<div id="alter_update_mode">
  ## alter\_update\_mode
</div>

<SettingsInfoBlock type="AlterUpdateMode" default_value="heavy" />

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

`UPDATE` コマンドを含む `ALTER` クエリに対するモードです。

設定可能な値:

* `heavy` - 通常のミューテーションを実行します。
* `lightweight` - 可能であれば論理更新を実行し、そうでない場合は通常のミューテーションを実行します。
* `lightweight_force` - 可能であれば論理更新を実行し、そうでない場合は例外をスローします。

<div id="analyze_index_with_space_filling_curves">
  ## analyze\_index\_with\_space\_filling\_curves
</div>

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

テーブルの索引に空間充填曲線が含まれている場合、たとえば `ORDER BY mortonEncode(x, y)` または `ORDER BY hilbertEncode(x, y)` で、クエリにその引数に対する条件 (たとえば `x >= 10 AND x <= 20 AND y >= 20 AND y <= 30`) があると、索引解析に空間充填曲線を使用します。

<div id="analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested">
  ## analyzer\_compatibility\_allow\_compound\_identifiers\_in\_unflatten\_nested
</div>

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

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

nested に複合識別子を追加できるようにします。クエリ結果が変わるため、これは互換性維持のための設定です。無効にすると、`SELECT a.b.c FROM table ARRAY JOIN a` は動作せず、`SELECT a FROM table` でも `a.b.c` カラムは `Nested a` の結果に含まれません。

<div id="analyzer_compatibility_join_using_top_level_identifier">
  ## analyzer\_compatibility\_join\_using\_top\_level\_identifier
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "JOIN USING 内の識別子を射影から解決するよう強制します"}]}]} />

JOIN USING 内の識別子を射影から解決するよう強制します (たとえば、`SELECT a + 1 AS b FROM t1 JOIN t2 USING (b)` では、結合は `t1.b = t2.b` ではなく、`t1.a + 1 = t2.b` によって実行されます) 。

<div id="analyzer_inline_views">
  ## analyzer\_inline\_views
</div>

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

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

有効にすると、アナライザは通常の (非マテリアライズドでパラメータ化されていない) ビューをその定義サブクエリに置き換え、述語のプッシュダウンやカラムプルーニングなどの境界をまたいだ最適化を可能にします。

<div id="any_join_distinct_right_table_keys">
  ## any\_join\_distinct\_right\_table\_keys
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.14"},{"label": "0"},{"label": "不整合を避けるため、デフォルトで ANY RIGHT JOIN と ANY FULL JOIN を無効にする"}]}]} />

`ANY INNER|LEFT JOIN` 演算で、従来の ClickHouse server の動作を有効にします。

<Note>
  この設定は、ユースケースが従来の `JOIN` の動作に依存している場合に限り、後方互換性のために使用してください。
</Note>

従来の動作が有効な場合:

* ClickHouse は、左から右へのテーブルキーの多対一マッピングのロジックを使用するため、`t1 ANY LEFT JOIN t2` と `t2 ANY RIGHT JOIN t1` の結果は一致しません。
* `ANY INNER JOIN` の結果には、`SEMI LEFT JOIN` と同様に、左テーブルのすべての行が含まれます。

従来の動作が無効な場合:

* ClickHouse は、`ANY RIGHT JOIN` で一対多のキーマッピングを行うロジックを使用するため、`t1 ANY LEFT JOIN t2` と `t2 ANY RIGHT JOIN t1` の結果は同一になります。
* `ANY INNER JOIN` の結果には、左テーブルと右テーブルの両方から、キーごとに 1 行が含まれます。

設定可能な値:

* 0 — 従来の動作は無効です。
* 1 — 従来の動作は有効です。

関連項目:

* [JOIN strictness](/ja/reference/statements/select/join#settings)

<div id="apply_deleted_mask">
  ## apply\_deleted\_mask
</div>

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

論理削除された行を除外するフィルタリングを有効にします。無効にすると、クエリでそれらの行を読み取れるようになります。これは、デバッグや「削除の取り消し」のシナリオで役立ちます

<div id="apply_mutations_on_fly">
  ## apply\_mutations\_on\_fly
</div>

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

true の場合、データパートにまだ materialized されていない mutations (UPDATE および DELETE) は、SELECT 時に適用されます。

<div id="apply_patch_parts">
  ## apply\_patch\_parts
</div>

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

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

true の場合、パッチパート (論理更新を表す) は SELECT 時に適用されます。

<div id="apply_patch_parts_join_cache_buckets">
  ## apply\_patch\_parts\_join\_cache\_buckets
</div>

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

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

Join モードでパッチパートを適用する際に使用する一時 cache 内のバケット数。

<div id="apply_prewhere_after_final">
  ## apply\_prewhere\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "新しい設定。有効にすると、PREWHERE 条件は FINAL 処理の後に適用されます。"}]}]} />

有効にすると、ReplacingMergeTree および同様のエンジンでは、PREWHERE 条件が FINAL 処理の後に適用されます。
これは、PREWHERE が重複した行ごとに値が異なる可能性のあるカラムを参照しており、
フィルタリングする前に FINAL で採用される行を確定させたい場合に便利です。無効の場合、PREWHERE は読み取り時に適用されます。
注: apply\_row\_level\_security\_after\_final が有効で、かつ行ポリシーがソートキー以外のカラムを使用している場合、正しい実行順序を保つために PREWHERE も
後ろに延期されます (行ポリシーは PREWHERE より前に適用される必要があります) 。

<div id="apply_row_policy_after_final">
  ## apply\_row\_policy\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "25.8 で #87303 より前と同様に、apply_row_policy_after_final をデフォルトで有効化"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "行ポリシーと PREWHERE を *MergeTree テーブルでの FINAL 処理後に適用するかどうかを制御する新しい設定"}]}]} />

有効にすると、行ポリシーと PREWHERE は \*MergeTree テーブルでの FINAL 処理後に適用されます。 (特に ReplacingMergeTree の場合)
無効にすると、行ポリシーは FINAL の前に適用されるため、ポリシーによって
ReplacingMergeTree や同様のエンジンで重複排除に使われるべき行が除外されると、結果が変わる可能性があります。

行ポリシーの式が ORDER BY 内のカラムのみに依存している場合は、最適化のため、それでも FINAL の前に適用されます。
このようなフィルタリングは重複排除の結果に影響しないためです。

設定可能な値:

* 0 — 行ポリシーと PREWHERE は FINAL の前に適用されます (デフォルト) 。
* 1 — 行ポリシーと PREWHERE は FINAL の後に適用されます。

<div id="apply_settings_from_server">
  ## apply\_settings\_from\_server
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "クライアント側のコード（例: INSERT 入力のパースやクエリ出力のフォーマット）は、サーバー config の設定を含め、サーバーと同じ設定を使用します。"}]}]} />

クライアントがサーバーから設定を受け入れるかどうかを指定します。

これはクライアント側で実行される操作にのみ影響し、特に INSERT の入力データのパースとクエリ結果のフォーマットに関係します。クエリ実行の大部分はサーバー上で行われるため、この設定の影響は受けません。

通常、この設定はクライアント経由 (クライアントのコマンドライン引数、`SET` クエリ、または `SELECT` クエリの `SETTINGS` セクション) ではなく、ユーザープロファイル (users.xml または `ALTER USER` などのクエリ) で設定する必要があります。クライアント経由では false に変更できますが、true には変更できません (ユーザープロファイルで `apply_settings_from_server = false` になっている場合、サーバーは設定を送信しないためです) 。

なお、当初 (24.12) にはサーバー setting (`send_settings_to_client`) がありましたが、使いやすさの向上のため、後にこの client setting に置き換えられました。

<div id="archive_adaptive_buffer_max_size_bytes">
  ## archive\_adaptive\_buffer\_max\_size\_bytes
</div>

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

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

アーカイブファイル (たとえば tar アーカイブ) への書き込み時に使用されるアダプティブバッファの最大サイズを制限します

<div id="arrow_flight_request_descriptor_type">
  ## arrow\_flight\_request\_descriptor\_type
</div>

<SettingsInfoBlock type="ArrowFlightDescriptorType" default_value="path" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "path"},{"label": "新しい設定。Arrow Flight リクエストで使用するディスクリプタの種類です。'path' または 'command' を指定します。Dremio では 'command' が必要です。"}]}]} />

Arrow Flight リクエストで使用するディスクリプタの種類です。'path' はデータセット名を path ディスクリプタとして送信します。'command' は SQL クエリを command ディスクリプタとして送信します (Dremio では必須) 。

設定可能な値:

* 'path' — FlightDescriptor::Path を使用します (デフォルト。ほとんどの Arrow Flight サーバーで動作します)
* 'command' — SELECT クエリを指定して FlightDescriptor::Command を使用します (Dremio では必須)

<div id="ast_fuzzer_any_query">
  ## ast\_fuzzer\_any\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "読み取り専用だけでなく、すべてのクエリタイプをファジングできるようにする新しい設定。"}]}]} />

false (デフォルト) の場合、サーバー側の AST fuzzer (`ast_fuzzer_runs` で制御) は、読み取り専用クエリ (SELECT、EXPLAIN、SHOW、DESCRIBE、EXISTS) のみをファジングします。true の場合は、DDL や INSERT を含むすべてのクエリタイプがファジングされます。

<div id="ast_fuzzer_runs">
  ## ast\_fuzzer\_runs
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "サーバー側 AST fuzzer を有効にするための新しい設定。"}]}]} />

通常のクエリを実行するたびに、その後でランダム化されたクエリを実行し、結果を破棄するサーバー側 AST fuzzer を有効にします。

* 0: 無効 (デフォルト) 。
* 0 より大きく 1 未満の値: ファズ化クエリを 1 件実行する確率。
* 1 以上の値: 通常のクエリ 1 件ごとに実行するファズ化クエリ数。

この fuzzer は、すべてのセッションにまたがるすべてのクエリから AST フラグメントを蓄積し、時間の経過とともにより興味深いミューテーションを生成します。失敗したファズ化クエリは黙って破棄され、結果がクライアントに返されることはありません。

<div id="asterisk_include_alias_columns">
  ## asterisk\_include\_alias\_columns
</div>

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

ワイルドカードクエリ (`SELECT *`) に [ALIAS](/ja/reference/statements/create/table#alias) カラムを含めるかどうかを指定します。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="asterisk_include_materialized_columns">
  ## asterisk\_include\_materialized\_columns
</div>

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

ワイルドカードクエリ (`SELECT *`) に [MATERIALIZED](/ja/reference/statements/create/view#materialized-view) カラムを含めます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="asterisk_include_virtual_columns">
  ## asterisk\_include\_virtual\_columns
</div>

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

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

ワイルドカードクエリ (`SELECT *`) に仮想カラムを含めるかどうかを指定します。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="async_insert">
  ## async\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "デフォルトで非同期 INSERT を有効にします。"}]}]} />

true の場合、`INSERT` クエリのデータはキューに保存され、後でバックグラウンドでテーブルにフラッシュされます。`wait_for_async_insert` が false の場合、`INSERT` クエリはほぼ即座に処理され、そうでない場合はデータがテーブルにフラッシュされるまでクライアントは待機します

<div id="async_insert_busy_timeout_decrease_rate">
  ## async\_insert\_busy\_timeout\_decrease\_rate
</div>

<SettingsInfoBlock type="Double" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0.2"},{"label": "適応型非同期挿入タイムアウトの短縮時に用いられる指数関数的な増加率"}]}]} />

適応型非同期挿入タイムアウトの短縮時に用いられる指数関数的な増加率

<div id="async_insert_busy_timeout_increase_rate">
  ## async\_insert\_busy\_timeout\_increase\_rate
</div>

<SettingsInfoBlock type="Double" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0.2"},{"label": "適応型非同期挿入タイムアウトが増加する際の指数関数的な増加率"}]}]} />

適応型非同期挿入タイムアウトが増加する際の指数関数的な増加率

<div id="async_insert_busy_timeout_max_ms">
  ## async\_insert\_busy\_timeout\_max\_ms
</div>

**別名**: `async_insert_busy_timeout_ms`

<SettingsInfoBlock type="Milliseconds" default_value="200" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "200"},{"label": "ミリ秒単位の非同期挿入タイムアウトの最小値です。async_insert_busy_timeout_ms は async_insert_busy_timeout_max_ms の別名です"}]}]} />

最初のデータが到着してから、クエリごとに収集されたデータをダンプするまでの最大待機時間です。

Cloud でのデフォルト値: `1000` (1s).

<div id="async_insert_busy_timeout_min_ms">
  ## async\_insert\_busy\_timeout\_min\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "50"},{"label": "非同期挿入タイムアウトの最小値（ミリ秒単位）。これは初期値としても機能し、その後、適応アルゴリズムによって増加する場合があります"}]}]} />

async\_insert\_use\_adaptive\_busy\_timeout によって自動調整が有効になっている場合、最初のデータが到着してから、クエリごとに収集されたデータを書き出すまでの最小待機時間です。これは適応アルゴリズムの初期値としても機能します

<div id="async_insert_deduplicate">
  ## async\_insert\_deduplicate
</div>

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

レプリケートテーブルに対する非同期 INSERT クエリで、挿入されるブロックの重複排除を行うかどうかを指定します

<div id="async_insert_max_data_size">
  ## async\_insert\_max\_data\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "10485760"},{"label": "以前の値は小さすぎたようです。"}]}]} />

挿入される前にクエリごとに収集される未解析データの最大サイズ (バイト単位)

Cloud でのデフォルト値: `104857600` (100 MiB).

<div id="async_insert_max_query_number">
  ## async\_insert\_max\_query\_number
</div>

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

挿入が実行されるまでに蓄積される insert クエリの最大数。
設定 [`async_insert_deduplicate`](#async_insert_deduplicate) が 1 の場合にのみ有効です。

<div id="async_insert_poll_timeout_ms">
  ## async\_insert\_poll\_timeout\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "10"},{"label": "非同期挿入キューからデータをポーリングする際のタイムアウト（ミリ秒）"}]}]} />

非同期挿入キューからデータをポーリングする際のタイムアウト

<div id="async_insert_use_adaptive_busy_timeout">
  ## async\_insert\_use\_adaptive\_busy\_timeout
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "適応型の非同期挿入タイムアウトを使用"}]}]} />

true に設定すると、非同期挿入に適応型のビジータイムアウトを使用します

<div id="async_query_sending_for_remote">
  ## async\_query\_sending\_for\_remote
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "1"},{"label": "接続を作成し、分片間で非同期にクエリを送信する"}]}]} />

リモートクエリの実行時に、接続の作成とクエリの送信を非同期で行います。

デフォルトで有効です。

<div id="async_socket_for_remote">
  ## async\_socket\_for\_remote
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.5"},{"label": "1"},{"label": "すべての問題を修正し、リモートクエリでのソケットからの非同期読み取りを再びデフォルトで有効化"}]}, {"id": "row-2","items": [{"label": "21.3"},{"label": "0"},{"label": "いくつかの問題があったため、リモートクエリでのソケットからの非同期読み取りを無効化"}]}]} />

リモートクエリの実行中に、ソケットからの非同期読み取りを有効にします。

デフォルトで有効です。

<div id="automatic_parallel_replicas_min_bytes_per_replica">
  ## automatic\_parallel\_replicas\_min\_bytes\_per\_replica
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1048576"},{"label": "テスト結果に基づく、より適切なデフォルト値"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "新しい設定"}]}]} />

並列レプリカを自動的に有効にするための、レプリカごとの読み取りバイト数のしきい値です (`automatic_parallel_replicas_mode`=1 の場合にのみ適用されます) 。0 はしきい値がないことを意味します。
読み取る総バイト数は、収集された統計に基づいて推定されます。

<div id="automatic_parallel_replicas_mode">
  ## automatic\_parallel\_replicas\_mode
</div>

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

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

収集した統計に基づいて、並列レプリカを使用した実行へ自動的に切り替える機能を有効にします。`enable_analyzer = 1`、`enable_parallel_replicas != 0`、`parallel_replicas_local_plan = 1` が必要で、さらに `cluster_for_parallel_replicas` を指定する必要があります。
0 - 無効、1 - 有効、2 - 統計の収集のみ有効 (並列レプリカを使用した実行への切り替えは無効) 。

<div id="azure_allow_parallel_part_upload">
  ## azure\_allow\_parallel\_part\_upload
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "true"},{"label": "Azure のマルチパートアップロードに複数のスレッドを使用します。"}]}]} />

Azure のマルチパートアップロードに複数のスレッドを使用します。

<div id="azure_check_objects_after_upload">
  ## azure\_check\_objects\_after\_upload
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "Azure Blob Storage 内の各アップロード済みオブジェクトを確認し、アップロードが成功したことを確かめます"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "Azure Blob Storage 内の各アップロード済みオブジェクトを確認し、アップロードが成功したことを確かめます"}]}]} />

Azure Blob Storage 内の各アップロード済みオブジェクトを確認し、アップロードが成功したことを確かめます

<div id="azure_connect_timeout_ms">
  ## azure\_connect\_timeout\_ms
</div>

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

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

Azure ディスクのホストへの接続タイムアウト。

<div id="azure_create_new_file_on_insert">
  ## azure\_create\_new\_file\_on\_insert
</div>

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

Azureエンジンのテーブルで、insertのたびに新しいファイルを作成するかどうかを設定します

<div id="azure_ignore_file_doesnt_exist">
  ## azure\_ignore\_file\_doesnt\_exist
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "AzureBlobStorage table engine で、要求されたファイルが存在しない場合に、例外をスローする代わりに 0 行を返せるようにします"}]}]} />

特定のキーの読み取り時に、ファイルが存在しない場合はそれを無視します。

設定可能な値:

* 1 — `SELECT` は空の結果を返します。
* 0 — `SELECT` は例外をスローします。

<div id="azure_list_object_keys_size">
  ## azure\_list\_object\_keys\_size
</div>

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

ListObject リクエストで一度に返されるファイルの最大数

<div id="azure_max_blocks_in_multipart_upload">
  ## azure\_max\_blocks\_in\_multipart\_upload
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "50000"},{"label": "Azure のマルチパートアップロードにおけるブロックの最大数。"}]}]} />

Azure のマルチパートアップロードにおけるブロックの最大数。

<div id="azure_max_get_burst">
  ## azure\_max\_get\_burst
</div>

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

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

1 秒あたりのリクエスト数の制限に達するまでに、同時に発行できるリクエストの最大数。デフォルト値 (0) は `azure_max_get_rps` と同じです

<div id="azure_max_get_rps">
  ## azure\_max\_get\_rps
</div>

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

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

スロットリングが適用される前の、Azure GET リクエストの毎秒あたりの上限数。0 は無制限を意味します。

<div id="azure_max_inflight_parts_for_one_file">
  ## azure\_max\_inflight\_parts\_for\_one\_file
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "20"},{"label": "マルチパートアップロードリクエスト内で同時に読み込めるパーツの最大数です。0 は無制限を意味します。"}]}]} />

マルチパートアップロードリクエスト内で同時に読み込めるパーツの最大数です。0 は無制限を意味します。

<div id="azure_max_put_burst">
  ## azure\_max\_put\_burst
</div>

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

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

1 秒あたりのリクエスト数制限に達するまでに同時に発行できるリクエストの最大数。デフォルト値 (0) は `azure_max_put_rps` と同じです

<div id="azure_max_put_rps">
  ## azure\_max\_put\_rps
</div>

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

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

スロットリングが発生する前の、Azure の PUT リクエストの 1 秒あたりのレート上限です。0 は無制限を意味します。

<div id="azure_max_redirects">
  ## azure\_max\_redirects
</div>

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

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

許可される Azure リダイレクトの最大ホップ数。

<div id="azure_max_single_part_copy_size">
  ## azure\_max\_single\_part\_copy\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "268435456"},{"label": "Azure blob storage への単一パートコピーでコピー可能なオブジェクトの最大サイズ。"}]}]} />

Azure blob storage への単一パートコピーでコピー可能なオブジェクトの最大サイズ。

<div id="azure_max_single_part_upload_size">
  ## azure\_max\_single\_part\_upload\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "33554432"},{"label": "S3に合わせる"}]}]} />

Azure blob storage へのシングルパートアップロードでアップロードできるオブジェクトの最大サイズ。

<div id="azure_max_single_read_retries">
  ## azure\_max\_single\_read\_retries
</div>

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

Azure blob storage の単一読み取り時における最大再試行回数。

<div id="azure_max_unexpected_write_error_retries">
  ## azure\_max\_unexpected\_write\_error\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "4"},{"label": "Azure blob storage への書き込み中に想定外のエラーが発生した場合の最大再試行回数"}]}]} />

Azure blob storage への書き込み中に想定外のエラーが発生した場合の最大再試行回数

<div id="azure_max_upload_part_size">
  ## azure\_max\_upload\_part\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "5368709120"},{"label": "Azure blob storage へのマルチパートアップロード時にアップロードする part の最大サイズ。"}]}]} />

Azure blob storage へのマルチパートアップロード時にアップロードする part の最大サイズ。

<div id="azure_min_upload_part_size">
  ## azure\_min\_upload\_part\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "16777216"},{"label": "Azure Blob Storage へのマルチパートアップロード時にアップロードするパートの最小サイズ。"}]}]} />

Azure Blob Storage へのマルチパートアップロード時にアップロードするパートの最小サイズ。

<div id="azure_request_timeout_ms">
  ## azure\_request\_timeout\_ms
</div>

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

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

Azure とのデータ送受信時のアイドルタイムアウトです。TCP の単一の読み取りまたは書き込み呼び出しがこの時間を超えてブロックされると失敗します。

<div id="azure_sdk_max_retries">
  ## azure\_sdk\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "10"},{"label": "Azure SDK における最大再試行回数"}]}]} />

Azure SDK における最大再試行回数

<div id="azure_sdk_retry_initial_backoff_ms">
  ## azure\_sdk\_retry\_initial\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "10"},{"label": "Azure SDK における再試行間の最小バックオフ"}]}]} />

Azure SDK における再試行間の最小バックオフ

<div id="azure_sdk_retry_max_backoff_ms">
  ## azure\_sdk\_retry\_max\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1000"},{"label": "Azure SDK での再試行間の最大バックオフ"}]}]} />

Azure SDK での再試行間の最大バックオフ

<div id="azure_skip_empty_files">
  ## azure\_skip\_empty\_files
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "azure table engine で空ファイルをスキップできるようにする"}]}]} />

S3 engine で空ファイルのスキップを有効または無効にします。

設定可能な値:

* 0 — 空ファイルが要求されたフォーマットに対応していない場合、`SELECT` は例外をスローします。
* 1 — 空ファイルに対して `SELECT` は空の結果を返します。

<div id="azure_strict_upload_part_size">
  ## azure\_strict\_upload\_part\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Azure Blob Storage へのマルチパートアップロード時にアップロードするパートの正確なサイズ。"}]}]} />

Azure Blob Storage へのマルチパートアップロード時にアップロードするパートの正確なサイズ。

<div id="azure_throw_on_zero_files_match">
  ## azure\_throw\_on\_zero\_files\_match
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "空のクエリ結果を返す代わりに、ListObjects リクエストが AzureBlobStorage エンジン内のどのファイルにも一致しない場合にエラーを発生させられるようにします"}]}]} />

glob 展開ルールに基づいて一致するファイルが 0 個の場合、エラーを発生させます。

設定可能な値:

* 1 — `SELECT` は例外をスローします。
* 0 — `SELECT` は空の結果を返します。

<div id="azure_truncate_on_insert">
  ## azure\_truncate\_on\_insert
</div>

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

Azure engine テーブルで、insert の前に TRUNCATE を実行するかどうかを有効または無効にします。

<div id="azure_upload_part_size_multiply_factor">
  ## azure\_upload\_part\_size\_multiply\_factor
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "2"},{"label": "Azure blob storage への1回の書き込みで azure_multiply_parts_count_threshold 個のパーツがアップロードされるたびに、azure_min_upload_part_size にこの係数を乗じます。"}]}]} />

Azure blob storage への1回の書き込みで azure\_multiply\_parts\_count\_threshold 個のパーツがアップロードされるたびに、azure\_min\_upload\_part\_size にこの係数を乗じます。

<div id="azure_upload_part_size_multiply_parts_count_threshold">
  ## azure\_upload\_part\_size\_multiply\_parts\_count\_threshold
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "500"},{"label": "この数のパーツが Azure blob storage にアップロードされるたびに、azure_min_upload_part_size は azure_upload_part_size_multiply_factor 倍になります。"}]}]} />

この数のパーツが Azure blob storage にアップロードされるたびに、azure\_min\_upload\_part\_size は azure\_upload\_part\_size\_multiply\_factor 倍になります。

<div id="azure_use_adaptive_timeouts">
  ## azure\_use\_adaptive\_timeouts
</div>

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

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

`true` に設定すると、すべての Azure リクエストで、最初の 2 回の試行は送信および受信タイムアウトを短くして行われます。
`false` に設定すると、すべての試行が同じタイムアウトで行われます。

<div id="backup_restore_batch_size_for_keeper_multi">
  ## backup\_restore\_batch\_size\_for\_keeper\_multi
</div>

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

バックアップまたは復元時に \[Zoo]Keeper へのマルチリクエストで使用するバッチの最大サイズ

<div id="backup_restore_batch_size_for_keeper_multiread">
  ## backup\_restore\_batch\_size\_for\_keeper\_multiread
</div>

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

バックアップまたは復元時に \[Zoo]Keeper へのマルチリードリクエストで使用するバッチの最大サイズ

<div id="backup_restore_failure_after_host_disconnected_for_seconds">
  ## backup\_restore\_failure\_after\_host\_disconnected\_for\_seconds
</div>

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

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

BACKUP ON CLUSTER または RESTORE ON CLUSTER の実行中に、あるホストがこの時間内に ZooKeeper 内の一時的な 'alive' ノードを再作成できない場合、バックアップまたは復元全体が失敗と見なされます。
この値は、障害発生後にホストが ZooKeeper に再接続するまでの妥当な時間よりも長くする必要があります。
0 は無制限を意味します。

<div id="backup_restore_finish_timeout_after_error_sec">
  ## backup\_restore\_finish\_timeout\_after\_error\_sec
</div>

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

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

現在の BACKUP ON CLUSTER または RESTORE ON CLUSTER 操作で、イニシエーターが他のホストの 'error' ノードへの反応と作業停止を待機する時間。

<div id="backup_restore_keeper_fault_injection_probability">
  ## backup\_restore\_keeper\_fault\_injection\_probability
</div>

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

バックアップまたは復元中に Keeper リクエストが失敗するおおよその確率です。有効な値の範囲は \[0.0f, 1.0f] です

<div id="backup_restore_keeper_fault_injection_seed">
  ## backup\_restore\_keeper\_fault\_injection\_seed
</div>

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

0 - ランダムシード、それ以外は設定値

<div id="backup_restore_keeper_max_retries">
  ## backup\_restore\_keeper\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1000"},{"label": "BACKUP または RESTORE の実行中に一時的な [Zoo]Keeper 障害が発生しても、処理全体が失敗しないよう、十分に大きな値にする必要があります。"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1000"},{"label": "BACKUP または RESTORE の実行中に一時的な [Zoo]Keeper 障害が発生しても、処理全体が失敗しないよう、十分に大きな値にする必要があります。"}]}]} />

BACKUP または RESTORE の実行中に行われる \[Zoo]Keeper 操作の最大再試行回数。
一時的な \[Zoo]Keeper 障害によって処理全体が失敗しないよう、十分に大きな値にする必要があります。

<div id="backup_restore_keeper_max_retries_while_handling_error">
  ## backup\_restore\_keeper\_max\_retries\_while\_handling\_error
</div>

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

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

BACKUP ON CLUSTER または RESTORE ON CLUSTER のエラー処理中における \[Zoo]Keeper 操作の最大再試行回数。

<div id="backup_restore_keeper_max_retries_while_initializing">
  ## backup\_restore\_keeper\_max\_retries\_while\_initializing
</div>

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

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

BACKUP ON CLUSTER または RESTORE ON CLUSTER の初期化中における \[Zoo]Keeper 操作の最大再試行回数。

<div id="backup_restore_keeper_retry_initial_backoff_ms">
  ## backup\_restore\_keeper\_retry\_initial\_backoff\_ms
</div>

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

バックアップまたは復元時の \[Zoo]Keeper 操作に対する初期バックオフのタイムアウト

<div id="backup_restore_keeper_retry_max_backoff_ms">
  ## backup\_restore\_keeper\_retry\_max\_backoff\_ms
</div>

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

バックアップまたは復元時の \[Zoo]Keeper 操作における最大 backoff timeout

Cloud でのデフォルト値: `60000`.

<div id="backup_restore_keeper_value_max_size">
  ## backup\_restore\_keeper\_value\_max\_size
</div>

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

バックアップ時の\[Zoo]Keeperノードのデータの最大サイズ

<div id="backup_restore_s3_retry_attempts">
  ## backup\_restore\_s3\_retry\_attempts
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1000"},{"label": "Aws::Client::RetryStrategy の設定。Aws::Client 自体で再試行を行い、0 は再試行しないことを意味します。バックアップ/復元時にのみ適用されます。"}]}]} />

Aws::Client::RetryStrategy の設定。Aws::Client 自体で再試行を行い、0 は再試行しないことを意味します。バックアップ/復元時にのみ適用されます。

<div id="backup_restore_s3_retry_initial_backoff_ms">
  ## backup\_restore\_s3\_retry\_initial\_backoff\_ms
</div>

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

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

バックアップおよび復元中に最初の再試行を行う前の初期バックオフ遅延 (ミリ秒) です。以降の再試行では、`backup_restore_s3_retry_max_backoff_ms` で指定された最大値に達するまで、遅延が指数関数的に増加します。

<div id="backup_restore_s3_retry_jitter_factor">
  ## backup\_restore\_s3\_retry\_jitter\_factor
</div>

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

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

バックアップおよびリストア操作中の `Aws::Client::RetryStrategy` において、再試行時の backoff 遅延に適用されるジッタ係数です。算出された backoff 遅延には、最大 `backup_restore_s3_retry_max_backoff_ms` まで、\[1.0, 1.0 + jitter] の範囲のランダムな係数が乗算されます。\[0.0, 1.0] の範囲内である必要があります

<div id="backup_restore_s3_retry_max_backoff_ms">
  ## backup\_restore\_s3\_retry\_max\_backoff\_ms
</div>

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

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

バックアップおよびリストア操作中の再試行の間隔の最大遅延時間 (ミリ秒) 。

<div id="backup_slow_all_threads_after_retryable_s3_error">
  ## backup\_slow\_all\_threads\_after\_retryable\_s3\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "新しい設定"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "0"},{"label": "新しい設定"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "デフォルトでこの設定を無効化"}]}]} />

`true` に設定すると、同じバックアップエンドポイントへの S3 リクエストを実行しているすべてのスレッドは、いずれか 1 つの S3 リクエストが 'Slow Down' などの再試行可能な S3 エラーに遭遇した後、速度が抑えられます。
`false` に設定すると、各スレッドは他のスレッドとは独立して S3 リクエストのバックオフを処理します。

<div id="cache_warmer_threads">
  ## cache\_warmer\_threads
</div>

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

ClickHouse Cloud でのみ有効です。[cache\_populated\_by\_fetch](/ja/reference/settings/merge-tree-settings#cache_populated_by_fetch) が有効な場合に、新しいデータパーツをファイルシステムキャッシュへ先回りしてダウンロードするためのバックグラウンドスレッド数。無効にするには 0 を指定します。

<div id="calculate_text_stack_trace">
  ## calculate\_text\_stack\_trace
</div>

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

クエリ実行中に例外が発生した場合、テキスト形式のスタックトレースを計算します。これはデフォルトの設定です。これにはシンボルのルックアップが必要なため、大量の不正なクエリを実行するファジングテストでは処理が遅くなることがあります。通常、このオプションを無効にすべきではありません。

<div id="cancel_http_readonly_queries_on_client_close">
  ## cancel\_http\_readonly\_queries\_on\_client\_close
</div>

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

クライアントが応答を待たずに接続を閉じた場合、HTTP の読み取り専用クエリ (例: `SELECT`) をキャンセルします。

Cloud でのデフォルト値: `1`。

<div id="cast_ipv4_ipv6_default_on_conversion_error">
  ## cast\_ipv4\_ipv6\_default\_on\_conversion\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.3"},{"label": "0"},{"label": "関数 cast(value, 'IPv4') および cast(value, 'IPv6') が、toIPv4 関数および toIPv6 関数と同様に動作するようにする"}]}]} />

IPv4 への CAST 演算子、IPv6 型への CAST 演算子、toIPv4 関数、および toIPv6 関数は、変換エラー時に例外をスローする代わりにデフォルト値を返します。

<div id="cast_keep_nullable">
  ## cast\_keep\_nullable
</div>

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

[CAST](/ja/reference/functions/regular-functions/type-conversion-functions#CAST) 操作で `Nullable` データ型を保持するかどうかを制御します。

この設定を有効にすると、`CAST` 関数の引数が `Nullable` である場合、結果も `Nullable` 型に変換されます。この設定を無効にすると、結果は常に宛先の型そのものになります。

設定可能な値:

* 0 — `CAST` の結果は、指定した宛先の型そのものになります。
* 1 — 引数の型が `Nullable` の場合、`CAST` の結果は `Nullable(DestinationDataType)` に変換されます。

**例**

次のクエリでは、結果は宛先のデータ型そのものになります:

```sql theme={null}
SET cast_keep_nullable = 0;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);
```

結果:

```text theme={null}
┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Int32                                             │
└───┴───────────────────────────────────────────────────┘
```

次のクエリを実行すると、宛先のデータ型に `Nullable` 修飾子が適用されます。

```sql theme={null}
SET cast_keep_nullable = 1;
SELECT CAST(toNullable(toInt32(0)) AS Int32) as x, toTypeName(x);
```

結果:

```text theme={null}
┌─x─┬─toTypeName(CAST(toNullable(toInt32(0)), 'Int32'))─┐
│ 0 │ Nullable(Int32)                                   │
└───┴───────────────────────────────────────────────────┘
```

**関連項目**

* [CAST](/ja/reference/functions/regular-functions/type-conversion-functions#CAST) 関数

<div id="cast_string_to_date_time_mode">
  ## cast\_string\_to\_date\_time\_mode
</div>

<SettingsInfoBlock type="DateTimeInputFormat" default_value="best_effort" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "best_effort"},{"label": "使い勝手を向上"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "basic"},{"label": "String から DateTime への cast で異なる DateTime のパースモードを使用可能に"}]}]} />

String から cast するときに、日付と時刻のテキスト表現に使用するパーサーを選択できます。

設定可能な値:

* `'best_effort'` — 拡張パースを有効にします。

  ClickHouse は、基本的な `YYYY-MM-DD HH:MM:SS` フォーマットに加え、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) のすべての日付・時刻フォーマットをパースできます。たとえば、`'2018-06-08T01:02:03.000Z'` です。

* `'best_effort_us'` — `best_effort` とほぼ同じです (違いについては [parseDateTimeBestEffortUS](/ja/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffortUS) を参照してください)

* `'basic'` — 基本パーサーを使用します。

  ClickHouse は、基本的な `YYYY-MM-DD HH:MM:SS` または `YYYY-MM-DD` フォーマットのみをパースできます。たとえば、`2019-08-20 10:18:56` または `2019-08-20` です。

関連項目:

* [DateTime データ型](/ja/reference/data-types/datetime)
* [日付と時刻を扱う関数](/ja/reference/functions/regular-functions/date-time-functions)

<div id="cast_string_to_dynamic_use_inference">
  ## cast\_string\_to\_dynamic\_use\_inference
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "0"},{"label": "String をパースして Dynamic に変換できるようにする設定を追加"}]}]} />

String から Dynamic への変換時に型推論を使用する

<div id="cast_string_to_variant_use_inference">
  ## cast\_string\_to\_variant\_use\_inference
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "String から Variant への CAST 時の型推論を有効または無効にする新しい設定"}]}]} />

String から Variant への変換時に型推論を使用します。

<div id="check_named_collection_dependencies">
  ## check\_named\_collection\_dependencies
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "named collection を削除すると依存先のテーブルに影響が出るかどうかを確認するための新しい設定。"}]}]} />

DROP NAMED COLLECTION を実行しても、それに依存するテーブルに影響が出ないことを確認します

<div id="check_query_single_value_result">
  ## check\_query\_single\_value\_result
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "CHECK TABLE をより有用にするため、この設定を変更しました"}]}]} />

`MergeTree` ファミリーのエンジンにおける [CHECK TABLE](/ja/reference/statements/check-table) クエリ結果の詳細度を定義します。

設定可能な値:

* 0 — クエリは、テーブルの個々のデータパートごとのチェック状態を表示します。
* 1 — クエリは、テーブル全体のチェック状態を表示します。

<div id="check_referential_table_dependencies">
  ## check\_referential\_table\_dependencies
</div>

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

DDLクエリ (DROP TABLE や RENAME など) によって参照関係が壊れないことを確認します

<div id="check_table_dependencies">
  ## check\_table\_dependencies
</div>

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

DDL クエリ (DROP TABLE や RENAME など) で依存関係が壊れないことを確認します

<div id="checksum_on_read">
  ## checksum\_on\_read
</div>

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

読み取り時にチェックサムを検証します。これはデフォルトで有効になっており、本番環境では常に有効にしておくべきです。この設定を無効にしても、メリットは期待できません。利用するのは実験やベンチマークの場合に限るべきです。この設定が適用されるのは、MergeTree family のテーブルのみです。その他のテーブルエンジンや、ネットワーク経由でデータを受信する場合は、チェックサムは常に検証されます。

<div id="cloud_mode">
  ## cloud\_mode
</div>

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

Cloudモード

Cloud でのデフォルト値: `1`.

<div id="cloud_mode_database_engine">
  ## cloud\_mode\_database\_engine
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

Cloud で許可されるデータベースエンジン。1 - DDL を Replicated データベースを使用するように書き換える、2 - DDL を Shared データベースを使用するように書き換える

Cloud でのデフォルト値: `2`.

<div id="cloud_mode_engine">
  ## cloud\_mode\_engine
</div>

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

Cloud で許可されるエンジンファミリー。

* 0 - すべて許可
* 1 - DDLs を \*ReplicatedMergeTree を使用するように書き換える
* 2 - DDLs を SharedMergeTree を使用するように書き換える
* 3 - リモートディスクが明示的に指定されている場合を除き、DDLs を SharedMergeTree を使用するように書き換える
* 4 - 3 と同じですが、さらに Distributed の代わりに Alias を使用します (Alias テーブルは Distributed テーブルの宛先テーブルを指すため、対応するローカルテーブルが使用されます)

公開部分を最小限にするための UInt64

Cloud でのデフォルト値: `2`.

<div id="cluster_for_parallel_replicas">
  ## cluster\_for\_parallel\_replicas
</div>

現在のサーバーが属する分片のクラスター

Cloud でのデフォルト値: `default`。

<div id="cluster_function_process_archive_on_multiple_nodes">
  ## cluster\_function\_process\_archive\_on\_multiple\_nodes
</div>

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

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

`true` に設定すると、クラスター関数でのアーカイブ処理のパフォーマンスが向上します。互換性を確保し、以前のバージョンでアーカイブを含むクラスター関数を使用している場合に 25.7 以降へのアップグレード中のエラーを回避するため、`false` に設定してください。

<div id="cluster_table_function_buckets_batch_size">
  ## cluster\_table\_function\_buckets\_batch\_size
</div>

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

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

`bucket` 分割粒度を使用するクラスターテーブル関数で、タスクを分散処理する際に使われる Batch のおおよそのサイズ (バイト単位) を定義します。システムは、少なくともこのサイズに達するまでデータを蓄積します。実際のサイズは、データ境界に合わせるため、これよりわずかに大きくなる場合があります。

<div id="cluster_table_function_split_granularity">
  ## cluster\_table\_function\_split\_granularity
</div>

<SettingsInfoBlock type="ObjectStorageGranularityLevel" default_value="file" />

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

CLUSTER TABLE FUNCTION の実行時に、データをどのようにタスクに分割するかを制御します。

この設定は、クラスター全体での処理の分散粒度を定義します。

* `file` — 各タスクがファイル全体を処理します。
* `bucket` — ファイル内の内部データブロックごとにタスクが作成されます (たとえば、Parquet の行グループ) 。

少数の大きなファイルを扱う場合、`bucket` のようなより細かい粒度を選ぶことで、並列度を向上できることがあります。
たとえば、Parquet ファイルに複数の行グループが含まれている場合、`bucket` 粒度を有効にすると、各グループを異なるワーカーが独立して処理できます。

<div id="collect_hash_table_stats_during_aggregation">
  ## collect\_hash\_table\_stats\_during\_aggregation
</div>

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

メモリ割り当てを最適化するため、ハッシュテーブルの統計情報の収集を有効にします

<div id="collect_hash_table_stats_during_joins">
  ## collect\_hash\_table\_stats\_during\_joins
</div>

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

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

ハッシュテーブルの統計情報の収集を有効にし、メモリ割り当てを最適化します

<div id="compatibility">
  ## compatibility
</div>

`compatibility` 設定を使用すると、ClickHouse は指定された以前の ClickHouse バージョンのデフォルト設定を使用します。

設定がデフォルト以外の値に変更されている場合、それらの設定はそのまま維持されます (`compatibility` 設定の影響を受けるのは、変更されていない設定のみです) 。

この設定には、`22.3`、`22.8` のような ClickHouse のバージョン番号を文字列として指定します。値が空の場合、この設定は無効になります。

デフォルトでは無効です。

<Note>
  ClickHouse Cloud では、サービスレベルのデフォルトの compatibility 設定は ClickHouse Cloud Support が設定する必要があります。設定を希望する場合は、[サポートケースを作成](https://clickhouse.cloud/support)してください。
  ただし、compatibility 設定は、セッションでの `SET compatibility = '22.3'` やクエリでの `SETTINGS compatibility = '22.3'` など、標準的な ClickHouse の設定メカニズムを使用して、ユーザー、ロール、プロファイル、クエリ、またはセッションレベルで上書きできます。
</Note>

<div id="compatibility_ignore_auto_increment_in_create_table">
  ## compatibility\_ignore\_auto\_increment\_in\_create\_table
</div>

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

true の場合はカラム宣言内の AUTO\_INCREMENT キーワードを無視し、false の場合はエラーを返します。これにより MySQL からの移行が容易になります

<div id="compatibility_ignore_collation_in_create_table">
  ## compatibility\_ignore\_collation\_in\_create\_table
</div>

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

CREATE TABLE で collation を無視する互換性設定

<div id="compatibility_s3_presigned_url_query_in_path">
  ## compatibility\_s3\_presigned\_url\_query\_in\_path
</div>

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

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

互換性設定です。有効にすると、事前署名付きURLのクエリパラメータ (例: X-Amz-\*) が S3キーに含まれるため (従来の動作) 、パス内で '?' がワイルドカードとして扱われます。
無効時 (デフォルト) には、事前署名付きURLのクエリパラメータは URL クエリ内に保持されるため、'?' がワイルドカードとして解釈されるのを防げます。

<div id="compile_aggregate_expressions">
  ## compile\_aggregate\_expressions
</div>

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

集約関数のネイティブコードへの JIT コンパイルを有効または無効にします。この設定を有効にすると、パフォーマンスが向上する可能性があります。

設定可能な値:

* 0 — JIT コンパイルを使用せずに集約処理が実行されます。
* 1 — JIT コンパイルを使用して集約処理が実行されます。

**関連項目**

* [min\_count\_to\_compile\_aggregate\_expression](#min_count_to_compile_aggregate_expression)

<div id="compile_expressions">
  ## compile\_expressions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "JITコンパイラの基盤となるLLVMインフラストラクチャは、この設定をデフォルトで有効にできるほど十分に安定していると考えています。"}]}]} />

一部のスカラー関数と演算子をネイティブコードにコンパイルします。

<div id="compile_sort_description">
  ## compile\_sort\_description
</div>

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

ソート記述をネイティブコードとしてコンパイルします。

<div id="connect_timeout">
  ## connect\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="10" />

レプリカが存在しない場合の接続タイムアウト。

<div id="connect_timeout_with_failover_ms">
  ## connect\_timeout\_with\_failover\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "1000"},{"label": "非同期接続に伴い、デフォルトの接続タイムアウトを延長"}]}]} />

クラスター定義で 'shard' および 'replica' セクションを使用している場合に、Distributed テーブルエンジンでリモートサーバーへ接続する際のタイムアウト時間 (ミリ秒) です。
接続に失敗した場合は、複数のレプリカへの接続が何度か試行されます。

<div id="connect_timeout_with_failover_secure_ms">
  ## connect\_timeout\_with\_failover\_secure\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "1000"},{"label": "非同期接続に伴い、セキュア接続のデフォルトの接続タイムアウトを増やしました"}]}]} />

最初の正常なレプリカを選択するための接続タイムアウト (セキュア接続用) 。

<div id="connection_pool_max_wait_ms">
  ## connection\_pool\_max\_wait\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="0" />

接続プールがいっぱいの場合に、接続を待機する時間をミリ秒単位で指定します。

設定可能な値:

* 正の整数。
* 0 — タイムアウトなし。

<div id="connections_with_failover_max_tries">
  ## connections\_with\_failover\_max\_tries
</div>

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

Distributed テーブルエンジンで、各レプリカに対して接続を試行する最大回数です。

<div id="convert_query_to_cnf">
  ## convert\_query\_to\_cnf
</div>

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

`true` に設定すると、`SELECT` クエリは連言標準形 (CNF) に変換されます。クエリを CNF に書き換えることで、実行が高速になる場合があります (詳しくは、この[GitHub issue](https://github.com/ClickHouse/ClickHouse/issues/11749)を参照してください) 。

たとえば、次の `SELECT` クエリは変更されません (これがデフォルトの動作です) 。

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = false;
```

結果は次のとおりです。

```response theme={null}
┌─explain────────────────────────────────────────────────────────┐
│ SELECT x                                                       │
│ FROM                                                           │
│ (                                                              │
│     SELECT number AS x                                         │
│     FROM numbers(20)                                           │
│     WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15)) │
│ ) AS a                                                         │
│ WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))     │
│ SETTINGS convert_query_to_cnf = 0                              │
└────────────────────────────────────────────────────────────────┘
```

`convert_query_to_cnf` を `true` に設定して、どう変わるか見てみましょう。

```sql theme={null}
EXPLAIN SYNTAX
SELECT *
FROM
(
    SELECT number AS x
    FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = true;
```

`WHERE`句がCNFに書き換えられている点に注目してください。ただし、結果セットはまったく同じで、ブール論理は変わっていません。

```response theme={null}
┌─explain───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ SELECT x                                                                                                              │
│ FROM                                                                                                                  │
│ (                                                                                                                     │
│     SELECT number AS x                                                                                                │
│     FROM numbers(20)                                                                                                  │
│     WHERE ((x <= 15) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x >= 10) OR (x >= 1)) │
│ ) AS a                                                                                                                │
│ WHERE ((x >= 10) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x <= 15) OR (x <= 5))     │
│ SETTINGS convert_query_to_cnf = 1                                                                                     │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

設定可能な値: true, false

<div id="correlated_subqueries_default_join_kind">
  ## correlated\_subqueries\_default\_join\_kind
</div>

<SettingsInfoBlock type="DecorrelationJoinKind" default_value="right" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "right"},{"label": "新しい設定。デコリレーション後のクエリプランのデフォルトの JOIN 種別。"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "right"},{"label": "新しい設定。デコリレーション後のクエリプランのデフォルトの JOIN 種別。"}]}]} />

デコリレーション後のクエリプランにおける JOIN の種類を制御します。デフォルト値は `right` で、この場合、デコリレーション後のプランにはサブクエリ入力が右側にある RIGHT JOIN が含まれます。

設定可能な値:

* `left` - デコリレーション処理により LEFT JOIN が生成され、入力テーブルは左側に配置されます。
* `right` - デコリレーション処理により RIGHT JOIN が生成され、入力テーブルは右側に配置されます。

<div id="correlated_subqueries_substitute_equivalent_expressions">
  ## correlated\_subqueries\_substitute\_equivalent\_expressions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "相関サブクエリのプランニング最適化に関する新しい設定。"}]}]} />

フィルタ式を使用して等価な式を推論し、CROSS JOIN を作成する代わりにそれらの式に置き換えます。

<div id="correlated_subqueries_use_in_memory_buffer">
  ## correlated\_subqueries\_use\_in\_memory\_buffer
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "デフォルトで、相関サブクエリの入力にインメモリバッファを使用します。"}]}]} />

相関サブクエリの入力にインメモリバッファを使用し、繰り返し評価されるのを防ぎます。

<div id="count_distinct_implementation">
  ## count\_distinct\_implementation
</div>

<SettingsInfoBlock type="String" default_value="uniqExact" />

[COUNT(DISTINCT ...)](/ja/reference/functions/aggregate-functions/count) 構文の実行に使用する `uniq*` 関数を指定します。

設定可能な値:

* [uniq](/ja/reference/functions/aggregate-functions/uniq)
* [uniqCombined](/ja/reference/functions/aggregate-functions/uniqCombined)
* [uniqCombined64](/ja/reference/functions/aggregate-functions/uniqCombined64)
* [uniqHLL12](/ja/reference/functions/aggregate-functions/uniqHLL12)
* [uniqExact](/ja/reference/functions/aggregate-functions/uniqExact)

<div id="count_distinct_optimization">
  ## count\_distinct\_optimization
</div>

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

count distinct を group by のサブクエリに書き換える

<div id="count_matches_stop_at_empty_match">
  ## count\_matches\_stop\_at\_empty\_match
</div>

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

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

`countMatches` 関数で、パターンが長さ0に一致した時点でカウントを停止します。

<div id="create_if_not_exists">
  ## create\_if\_not\_exists
</div>

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

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

デフォルトで `CREATE` ステートメントの `IF NOT EXISTS` を有効にします。この設定または `IF NOT EXISTS` のいずれかが指定されていて、指定した名前のテーブルがすでに存在する場合、例外は発生しません。

<div id="create_index_ignore_unique">
  ## create\_index\_ignore\_unique
</div>

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

CREATE UNIQUE INDEX の UNIQUE キーワードを無視します。SQL 互換性テスト向けの設定です。

<div id="create_replicated_merge_tree_fault_injection_probability">
  ## create\_replicated\_merge\_tree\_fault\_injection\_probability
</div>

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

ZooKeeper にメタデータを作成した後、table の作成時に障害を挿入する確率

<div id="create_table_empty_primary_key_by_default">
  ## create\_table\_empty\_primary\_key\_by\_default
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "使い勝手の向上"}]}]} />

ORDER BY と PRIMARY KEY が指定されていない場合に、空の主キーを持つ \*MergeTree テーブルを作成できるようにします

<div id="cross_join_min_bytes_to_compress">
  ## cross\_join\_min\_bytes\_to\_compress
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "1073741824"},{"label": "CROSS JOIN で圧縮するブロックの最小サイズです。値が 0 の場合、このしきい値は無効になります。ブロックは、2 つのしきい値（行数またはバイト数）のいずれかに達すると圧縮されます。"}]}]} />

CROSS JOIN で圧縮するブロックの最小サイズです。値が 0 の場合、このしきい値は無効になります。ブロックは、2 つのしきい値 (行数またはバイト数) のいずれかに達すると圧縮されます。

<div id="cross_join_min_rows_to_compress">
  ## cross\_join\_min\_rows\_to\_compress
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "10000000"},{"label": "CROSS JOIN でブロックを圧縮するための最小行数。値が 0 の場合、このしきい値は無効になります。2 つのしきい値（行数またはバイト数）のいずれかに達すると、このブロックは圧縮されます。"}]}]} />

CROSS JOIN でブロックを圧縮するための最小行数。値が 0 の場合、このしきい値は無効になります。2 つのしきい値 (行数またはバイト数) のいずれかに達すると、このブロックは圧縮されます。

<div id="cross_to_inner_join_rewrite">
  ## cross\_to\_inner\_join\_rewrite
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "2"},{"label": "カンマ join を INNER JOIN に強制的に書き換える"}]}]} />

WHERE 句に結合条件式がある場合、comma/cross join の代わりに inner join を使用します。値: 0 - 書き換えなし、1 - comma/cross の場合に、可能であれば適用、2 - すべての comma join を強制的に書き換え、cross は可能であれば書き換える

<div id="data_type_default_nullable">
  ## data\_type\_default\_nullable
</div>

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

カラム定義で明示的な修飾子 [NULL or NOT NULL](/ja/reference/statements/create/table#null-or-not-null-modifiers) を指定しない場合、データ型を [Nullable](/ja/reference/data-types/nullable) として扱うことを許可します。

設定可能な値:

* 1 — カラム定義のデータ型は、デフォルトで `Nullable` に設定されます。
* 0 — カラム定義のデータ型は、デフォルトで `Nullable` には設定されません。

<div id="database_atomic_wait_for_drop_and_detach_synchronously">
  ## database\_atomic\_wait\_for\_drop\_and\_detach\_synchronously
</div>

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

すべての`DROP`および`DETACH`クエリに`SYNC`修飾子を追加します。

設定可能な値:

* 0 — クエリは遅延して実行されます。
* 1 — クエリは遅延せずに実行されます。

<div id="database_datalake_require_metadata_access">
  ## database\_datalake\_require\_metadata\_access
</div>

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

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

データベースエンジン DataLakeCatalog でテーブルのメタデータを取得する権限がない場合に、エラーをスローするかどうかを指定します。

<div id="database_replicated_allow_explicit_uuid">
  ## database\_replicated\_allow\_explicit\_uuid
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "テーブル UUID の明示的な指定を禁止する新しい設定が追加されました"}]}]} />

0 - Replicated databases 内のテーブルで UUID を明示的に指定することはできません。1 - 許可します。2 - 許可しますが、指定された UUID は無視され、代わりにランダムな UUID が生成されます。

<div id="database_replicated_allow_heavy_create">
  ## database\_replicated\_allow\_heavy\_create
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Replicated データベースエンジンでは、長時間実行される DDL クエリ（CREATE AS SELECT および POPULATE）は禁止されていました"}]}]} />

Replicated データベースエンジンで長時間実行される DDL クエリ (CREATE AS SELECT および POPULATE) を許可します。DDL キューが長時間ブロックされる可能性がある点に注意してください。

<div id="database_replicated_allow_only_replicated_engine">
  ## database\_replicated\_allow\_only\_replicated\_engine
</div>

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

エンジンが Replicated のデータベースでは、Replicated テーブルのみ作成できます

Cloud でのデフォルト値: `1`.

<div id="database_replicated_allow_replicated_engine_arguments">
  ## database\_replicated\_allow\_replicated\_engine\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "デフォルトでは明示的な引数の指定を許可しない"}]}]} />

0 - Replicated database 内の \*MergeTree テーブルで、ZooKeeper path とレプリカ名を明示的に指定することを許可しません。1 - 許可します。2 - 許可しますが、指定された path は無視し、代わりにデフォルトのものを使用します。3 - 許可し、警告もログに記録しません。

<div id="database_replicated_always_detach_permanently">
  ## database\_replicated\_always\_detach\_permanently
</div>

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

データベースエンジンがReplicatedの場合、DETACH TABLE は DETACH TABLE PERMANENTLY として実行されます

<div id="database_replicated_enforce_synchronous_settings">
  ## database\_replicated\_enforce\_synchronous\_settings
</div>

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

一部のクエリで同期的な待機を強制します (関連項目: `database_atomic_wait_for_drop_and_detach_synchronously`、`mutations_sync`、`alter_sync`) 。これらの設定を有効にすることは推奨されません。

<div id="database_replicated_initial_query_timeout_sec">
  ## database\_replicated\_initial\_query\_timeout\_sec
</div>

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

初回の DDLクエリが、Replicatedデータベースによる以前の DDLキューのエントリの処理が完了するまで待機する時間を、秒単位で設定します。

設定可能な値:

* 正の整数。
* 0 — 無制限。

<div id="database_shared_drop_table_delay_seconds">
  ## database\_shared\_drop\_table\_delay\_seconds
</div>

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

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

削除されたテーブルが Shared データベースから実際に削除されるまでの猶予時間 (秒) です。この時間内であれば、`UNDROP TABLE` ステートメントを使用してテーブルを復元できます。

<div id="decimal_check_overflow">
  ## decimal\_check\_overflow
</div>

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

Decimal の算術演算および比較演算のオーバーフローをチェックします

<div id="deduplicate_blocks_in_dependent_materialized_views">
  ## deduplicate\_blocks\_in\_dependent\_materialized\_views
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "依存先の materialized view に対する重複排除をデフォルトで有効にします。"}]}]} />

Replicated\* tables からデータを受け取る materialized view に対する重複排除チェックを有効または無効にします。

設定可能な値:

0 — 無効。
1 — 有効。

有効にすると、ClickHouse は Replicated\* tables に依存する materialized view 内のブロックに対して重複排除を実行します。
この設定は、障害により挿入処理が再試行された場合に、materialized view に重複データが含まれないようにするのに役立ちます。

**関連項目**

* [IN 演算子での NULL 処理](/ja/concepts/features/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views)

<div id="deduplicate_insert">
  ## deduplicate\_insert
</div>

<SettingsInfoBlock type="DeduplicateInsertMode" default_value="enable" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "enable"},{"label": "デフォルトで、すべての同期 INSERT と非同期 INSERT の重複排除を有効にします。"}]}]} />

`INSERT INTO` のブロック重複排除を有効または無効にします (Replicated\* テーブルの場合) 。
この設定は、`insert_deduplicate` および `async_insert_deduplicate` の設定をオーバーライドします。
この設定には、次の 3 つの設定可能な値があります。

* disable — `INSERT INTO` クエリの重複排除は無効です。
* enable — `INSERT INTO` クエリの重複排除は有効です。
* backward\_compatible\_choice — 特定の insert タイプで `insert_deduplicate` または `async_insert_deduplicate` が有効になっている場合、重複排除が有効になります。

<div id="deduplicate_insert_select">
  ## deduplicate\_insert\_select
</div>

<SettingsInfoBlock type="DeduplicateInsertSelectMode" default_value="enable_when_possible" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "enable_when_possible"},{"label": "deduplicate_insert_select のデフォルトの動作を ENABLE_WHEN_POSSIBLE に変更"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "enable_even_for_bad_queries"},{"label": "新しい設定、insert_select_deduplicate を置き換え"}]}]} />

`INSERT SELECT` のブロック重複排除 (Replicated\* テーブル向け) を有効または無効にします。
この設定は、`INSERT SELECT` クエリに対して `insert_deduplicate` と `deduplicate_insert` より優先されます。
この設定には 4 つの設定可能な値があります:

* disable — `INSERT SELECT` クエリの重複排除は無効です。
* force\_enable — `INSERT SELECT` クエリの重複排除は有効です。SELECT の結果が安定していない場合、例外がスローされます。
* enable\_when\_possible — `insert_deduplicate` が有効で、かつ SELECT の結果が安定している場合に重複排除が有効になり、それ以外の場合は無効になります。
* enable\_even\_for\_bad\_queries - `insert_deduplicate` が有効な場合に重複排除が有効になります。SELECT の結果が安定していない場合は警告がログに記録されますが、重複排除を有効にしたままクエリは実行されます。このオプションは後方互換性のためのものです。予期しない結果につながる可能性があるため、代わりに他のオプションを使用することを検討してください。

<div id="default_materialized_view_sql_security">
  ## default\_materialized\_view\_sql\_security
</div>

<SettingsInfoBlock type="SQLSecurityType" default_value="DEFINER" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "DEFINER"},{"label": "materialized view の作成時に、SQL SECURITY オプションのデフォルト値を設定できます"}]}]} />

materialized view の作成時に、SQL SECURITY オプションのデフォルト値を設定できます。[SQL security の詳細](/ja/reference/statements/create/view#sql_security)。

デフォルト値は `DEFINER` です。

<div id="default_max_bytes_in_join">
  ## default\_max\_bytes\_in\_join
</div>

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

制限が必要で、`max_bytes_in_join` が設定されていない場合の、右側のテーブルの最大サイズ。

<div id="default_normal_view_sql_security">
  ## default\_normal\_view\_sql\_security
</div>

<SettingsInfoBlock type="SQLSecurityType" default_value="INVOKER" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "INVOKER"},{"label": "通常ビューの作成時に、デフォルトの `SQL SECURITY` オプションを設定できます"}]}]} />

通常ビューの作成時に、デフォルトの `SQL SECURITY` オプションを設定できます。[SQL security について詳しくは、こちら](/ja/reference/statements/create/view#sql_security)。

デフォルト値は `INVOKER` です。

<div id="default_table_engine">
  ## default\_table\_engine
</div>

<SettingsInfoBlock type="DefaultTableEngine" default_value="MergeTree" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "MergeTree"},{"label": "利便性向上のため、デフォルトのテーブルエンジンを MergeTree に設定"}]}]} />

`CREATE` ステートメントで `ENGINE` が設定されていない場合に使用されるデフォルトのテーブルエンジンです。

設定可能な値:

* 有効な任意のテーブルエンジン名を表す文字列

Cloud でのデフォルト値: `SharedMergeTree`。

**例**

クエリ:

```sql theme={null}
SET default_table_engine = 'Log';

SELECT name, value, changed FROM system.settings WHERE name = 'default_table_engine';
```

結果:

```response theme={null}
┌─name─────────────────┬─value─┬─changed─┐
│ default_table_engine │ Log   │       1 │
└──────────────────────┴───────┴─────────┘
```

この例では、`Engine` を指定しない新しいテーブルはすべて、`Log` テーブルエンジンが使用されます。

クエリ:

```sql theme={null}
CREATE TABLE my_table (
    x UInt32,
    y UInt32
);

SHOW CREATE TABLE my_table;
```

結果:

```response theme={null}
┌─statement────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.my_table
(
    `x` UInt32,
    `y` UInt32
)
ENGINE = Log
└──────────────────────────────────────────────────────────────────────────┘
```

<div id="default_temporary_table_engine">
  ## default\_temporary\_table\_engine
</div>

<SettingsInfoBlock type="DefaultTableEngine" default_value="Memory" />

[default\_table\_engine](#default_table_engine) と同様ですが、一時テーブルに対して適用されます。

この例では、`Engine` を指定していない新しい一時テーブルでは、`Log` テーブルエンジンが使用されます。

クエリ:

```sql theme={null}
SET default_temporary_table_engine = 'Log';

CREATE TEMPORARY TABLE my_table (
    x UInt32,
    y UInt32
);

SHOW CREATE TEMPORARY TABLE my_table;
```

結果:

```response theme={null}
┌─statement────────────────────────────────────────────────────────────────┐
│ CREATE TEMPORARY TABLE default.my_table
(
    `x` UInt32,
    `y` UInt32
)
ENGINE = Log
└──────────────────────────────────────────────────────────────────────────┘
```

<div id="default_view_definer">
  ## default\_view\_definer
</div>

<SettingsInfoBlock type="String" default_value="CURRENT_USER" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "CURRENT_USER"},{"label": "ビューの作成時にデフォルトの `DEFINER` オプションを設定できます"}]}]} />

ビューの作成時にデフォルトの `DEFINER` オプションを設定できます。[SQL security の詳細](/ja/reference/statements/create/view#sql_security)。

デフォルト値は `CURRENT_USER` です。

<div id="defer_partition_pruning_after_final">
  ## defer\_partition\_pruning\_after\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "26.3 で暗黙的に導入された FINAL のパーティションプルーニング動作（https://github.com/ClickHouse/ClickHouse/pull/98242）を制御するため、26.5 で新たに追加された設定です。実質的なセマンティクス変更は 26.3 のブロックに記録されているため、`compatibility = '26.2'` を設定すると元に戻ります。このエントリは、26.4 からのアップグレード時のチェックで、新たに導入された設定名が受け入れられるようにするためのものです。"}]}, {"id": "row-2","items": [{"label": "26.3"},{"label": "1"},{"label": "パーティションキーのカラムがソートキーに含まれていない場合に、FINAL planner がパーティションプルーニングを無条件にスキップする動作を制御します。この動作変更自体は https://github.com/ClickHouse/ClickHouse/pull/98242 により 26.3 で暗黙的に導入されました。このエントリは、その変更を事後的に文書化するもので、`compatibility = '26.2'` を設定すると変更前の動作に戻ります（0 = FINAL の前に prune、高速; 1 = pruning を遅らせて正しさを優先）。"}]}]} />

有効な場合 (デフォルト) 、パーティションキーのカラムがソートキーに含まれていない
テーブルに対する `FINAL` クエリでは、パーティションプルーニングはスキップされます。これは
26.3 で導入された、正しさを優先する動作です。`FINAL` では、同じ主キーを共有しながら
異なるパーティションに存在する行を重複排除する必要が生じることがあり、パーティションプルーニングを行うと、
そうした行が重複排除の入力から暗黙的に除外されてしまいます。

無効な場合は、`FINAL` を使用していてもパーティションプルーニングが適用され、
26.3 より前の動作に戻ります。これは、パーティションカラムに対する `WHERE` predicate を含む
クエリでは大幅に高速になる可能性がありますが、同じ主キーを持つ行が異なるパーティションに存在し得ない場合にのみ
正しく動作します。たとえば、パーティションカラムが insert 時に設定され、
その後は決して変更されないイベントログテーブルなどが該当します。

この設定の影響を受けるのは、パーティションキーのカラムがソートキーに含まれていない
パーティション化テーブルのみです。それ以外のテーブルでは、パーティションプルーニングは常に適用されます。

設定可能な値:

* 0 — `FINAL` の前にパーティションプルーニングを適用します (26.3 より前の動作。高速ですが、一般的には安全ではありません) 。
* 1 — `FINAL` の後までパーティションプルーニングを遅らせます (デフォルト。正しさを優先) 。

<div id="delta_lake_enable_engine_predicate">
  ## delta\_lake\_enable\_engine\_predicate
</div>

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

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

delta-kernel の内部的なデータプルーニングを有効にします。

<div id="delta_lake_enable_expression_visitor_logging">
  ## delta\_lake\_enable\_expression\_visitor\_logging
</div>

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

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

Delta Lake expression visitor のテストレベルのログを有効にします。これらのログは、テストログとしても冗長になりすぎることがあります。

<div id="delta_lake_insert_max_bytes_in_data_file">
  ## delta\_lake\_insert\_max\_bytes\_in\_data\_file
</div>

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

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

Delta Lake の 1 つの挿入データファイルに対して設定するバイト数の上限を定義します。

<div id="delta_lake_insert_max_rows_in_data_file">
  ## delta\_lake\_insert\_max\_rows\_in\_data\_file
</div>

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

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

Delta Lake で 1 つの挿入データファイルに含められる行数の上限を定義します。

<div id="delta_lake_log_metadata">
  ## delta\_lake\_log\_metadata
</div>

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

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

Delta Lake のメタデータファイルをシステムテーブルに記録する機能を有効にします。

<div id="delta_lake_reload_schema_for_consistency">
  ## delta\_lake\_reload\_schema\_for\_consistency
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "一貫性を保つために、Delta Lake が各クエリの実行前にスキーマを再読み込みするかどうかを制御する新しい設定。"}]}]} />

有効にすると、クエリ解析時に使用されるスキーマと実行時に使用されるスキーマの
一貫性を確保するため、各クエリの実行前に Delta Lake のメタデータからスキーマが再読み込みされます。

<div id="delta_lake_snapshot_end_version">
  ## delta\_lake\_snapshot\_end\_version
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

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

読み取り対象の Delta Lake スナップショットの終了バージョン。値 `-1` は最新バージョンを読み取ることを意味します (値 `0` は有効なスナップショットバージョンです) 。

<div id="delta_lake_snapshot_start_version">
  ## delta\_lake\_snapshot\_start\_version
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

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

読み取る Delta Lake スナップショットの開始バージョンを指定します。値 -1 は最新バージョンを読み取ることを意味します (値 0 も有効なスナップショットバージョンです) 。

<div id="delta_lake_snapshot_version">
  ## delta\_lake\_snapshot\_version
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

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

読み取る Delta Lake スナップショットのバージョンを指定します。値が -1 の場合は最新バージョンを読み取ります (値 0 も有効なスナップショットバージョンです) 。

<div id="delta_lake_throw_on_engine_predicate_error">
  ## delta\_lake\_throw\_on\_engine\_predicate\_error
</div>

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

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

delta-kernel でスキャン述語を解析する際にエラーが発生した場合に、例外をスローするようにします。

<div id="describe_compact_output">
  ## describe\_compact\_output
</div>

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

true の場合、DESCRIBE クエリの結果にはカラム名と型のみが含まれます

<div id="describe_include_subcolumns">
  ## describe\_include\_subcolumns
</div>

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

[DESCRIBE](/ja/reference/statements/describe-table) クエリでサブカラムの表示を有効にします。たとえば、[Tuple](/ja/reference/data-types/tuple) のメンバーや、[Map](/ja/reference/data-types/map#reading-subcolumns-of-map)、[Nullable](/ja/reference/data-types/nullable#finding-null)、[Array](/ja/reference/data-types/array#array-size) データ型のサブカラムが対象です。

設定可能な値:

* 0 — `DESCRIBE` クエリにサブカラムは含まれません。
* 1 — `DESCRIBE` クエリにサブカラムが含まれます。

**例**

[DESCRIBE](/ja/reference/statements/describe-table) ステートメントの例を参照してください。

<div id="describe_include_virtual_columns">
  ## describe\_include\_virtual\_columns
</div>

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

true の場合、テーブルの仮想カラムが DESCRIBE クエリの結果に含まれます

<div id="dialect">
  ## dialect
</div>

<SettingsInfoBlock type="Dialect" default_value="clickhouse" />

クエリの解析に使用するダイアレクト

<div id="dictionary_use_async_executor">
  ## dictionary\_use\_async\_executor
</div>

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

Dictionary ソースの読み取り用パイプラインを複数のスレッドで実行します。ローカル CLICKHOUSE ソースを持つ Dictionary でのみサポートされています。

<div id="dictionary_validate_primary_key_type">
  ## dictionary\_validate\_primary\_key\_type
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Dictionaryの主キー型を検証します。デフォルトでは、シンプルレイアウトの id 型は暗黙的に UInt64 に変換されます。"}]}]} />

Dictionaryの主キー型を検証します。デフォルトでは、シンプルレイアウトの id 型は暗黙的に UInt64 に変換されます。

<div id="distinct_overflow_mode">
  ## distinct\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

データ量がいずれかの制限を超えた場合の動作を設定します。

設定可能な値:

* `throw`: 例外をスローします (デフォルト) 。
* `break`: クエリの実行を停止し、ソースデータが尽きた場合と同様に、
  部分的な結果を返します。

<div id="distributed_aggregation_memory_efficient">
  ## distributed\_aggregation\_memory\_efficient
</div>

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

分散集約の省メモリモードを有効にするかどうか。

<div id="distributed_background_insert_batch">
  ## distributed\_background\_insert\_batch
</div>

**別名**: `distributed_directory_monitor_batch_inserts`

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

挿入データをバッチ単位で送信する機能を有効または無効にします。

バッチ送信が有効な場合、[Distributed](/ja/reference/engines/table-engines/special/distributed) テーブルエンジンは、挿入された複数のデータファイルを個別に送信する代わりに、1 回の操作でまとめて送信しようとします。バッチ送信により、サーバーとネットワークのリソースをより効率的に活用できるため、クラスターのパフォーマンスが向上します。

設定可能な値:

* 1 — 有効。
* 0 — 無効。

<div id="distributed_background_insert_max_sleep_time_ms">
  ## distributed\_background\_insert\_max\_sleep\_time\_ms
</div>

**別名**: `distributed_directory_monitor_max_sleep_time_ms`

<SettingsInfoBlock type="Milliseconds" default_value="30000" />

[Distributed](/ja/reference/engines/table-engines/special/distributed) テーブルエンジンがデータを送信する際の最大間隔です。[distributed\_background\_insert\_sleep\_time\_ms](#distributed_background_insert_sleep_time_ms) 設定で指定した間隔が指数関数的に増加するのを制限します。

設定可能な値:

* 正の整数のミリ秒数。

<div id="distributed_background_insert_sleep_time_ms">
  ## distributed\_background\_insert\_sleep\_time\_ms
</div>

**別名**: `distributed_directory_monitor_sleep_time_ms`

<SettingsInfoBlock type="ミリ秒" default_value="100" />

[Distributed](/ja/reference/engines/table-engines/special/distributed)テーブルエンジンがデータを送信する際の基本間隔です。実際の間隔は、エラーが発生すると指数関数的に増加します。

設定可能な値:

* 正の整数のミリ秒数。

<div id="distributed_background_insert_split_batch_on_failure">
  ## distributed\_background\_insert\_split\_batch\_on\_failure
</div>

**別名**: `distributed_directory_monitor_split_batch_on_failure`

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

失敗時にバッチを分割するかどうかを有効/無効にします。

特定のバッチをリモートの分片に送信する際、後段に複雑なパイプライン (たとえば `GROUP BY` を伴う `MATERIALIZED VIEW`) があると、`Memory limit exceeded` などのエラーによって失敗することがあります。この場合、再試行しても改善せず、table の distributed 送信が滞る可能性がありますが、そのバッチ内のファイルを 1 つずつ送信すれば INSERT が成功する場合があります。

そのため、この設定を `1` にすると、そのようなバッチでは batching が無効になります (つまり、失敗したバッチに対して `distributed_background_insert_batch` を一時的に無効にします) 。

設定可能な値:

* 1 — 有効。
* 0 — 無効。

<Note>
  この設定は、破損したバッチにも影響します (異常な server (マシン) の停止や、[Distributed](/ja/reference/engines/table-engines/special/distributed) table engine で `fsync_after_insert`/`fsync_directories` を使用していないことが原因で発生する場合があります) 。
</Note>

<Note>
  パフォーマンスに悪影響を及ぼす可能性があるため、自動バッチ分割に依存すべきではありません。
</Note>

<div id="distributed_background_insert_timeout">
  ## distributed\_background\_insert\_timeout
</div>

**別名**: `insert_distributed_timeout`

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

Distributed への INSERT クエリのタイムアウトです。`insert_distributed_sync` が有効な場合にのみ使用されます。値が 0 の場合はタイムアウトしません。

<div id="distributed_cache_alignment">
  ## distributed\_cache\_alignment
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "distributed_cache_read_alignment から名称変更"}]}]} />

ClickHouse Cloud でのみ有効です。テスト用の設定のため、変更しないでください

<div id="distributed_cache_bypass_connection_pool">
  ## distributed\_cache\_bypass\_connection\_pool
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。分散キャッシュ接続プールのバイパスを許可します

<div id="distributed_cache_connect_backoff_max_ms">
  ## distributed\_cache\_connect\_backoff\_max\_ms
</div>

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

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

ClickHouse Cloud でのみ有効です。分散キャッシュ接続の作成時の最大バックオフ時間 (ミリ秒) です。

<div id="distributed_cache_connect_backoff_min_ms">
  ## distributed\_cache\_connect\_backoff\_min\_ms
</div>

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

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

ClickHouse Cloud でのみ有効です。分散キャッシュ接続を作成する際の最小バックオフ時間 (ミリ秒) 。

<div id="distributed_cache_connect_max_tries">
  ## distributed\_cache\_connect\_max\_tries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "5"},{"label": "設定値の変更"}]}, {"id": "row-2","items": [{"label": "25.1"},{"label": "20"},{"label": "Cloud のみ"}]}, {"id": "row-3","items": [{"label": "24.10"},{"label": "20"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。接続に失敗した場合に、分散キャッシュへの接続を再試行する回数

<div id="distributed_cache_connect_timeout_ms">
  ## distributed\_cache\_connect\_timeout\_ms
</div>

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

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

ClickHouse Cloud でのみ有効です。分散キャッシュサーバーへの接続時のタイムアウト。

<div id="distributed_cache_credentials_refresh_period_seconds">
  ## distributed\_cache\_credentials\_refresh\_period\_seconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "5"},{"label": "新しい非公開設定"}]}]} />

ClickHouse Cloud でのみ有効です。認証情報を更新する間隔です。

<div id="distributed_cache_data_packet_ack_window">
  ## distributed\_cache\_data\_packet\_ack\_window
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "5"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。単一の分散キャッシュ読み取りリクエストで、DataPacket シーケンスに対する ACK を送信するためのウィンドウです。

<div id="distributed_cache_discard_connection_if_unread_data">
  ## distributed\_cache\_discard\_connection\_if\_unread\_data
</div>

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

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

ClickHouse Cloud でのみ有効です。未読のデータがある場合は接続を破棄します。

<div id="distributed_cache_fetch_metrics_only_from_current_az">
  ## distributed\_cache\_fetch\_metrics\_only\_from\_current\_az
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。system.distributed\_cache\_metrics および system.distributed\_cache\_events では、現在のアベイラビリティゾーンからのみメトリクスを取得します

<div id="distributed_cache_file_cache_name">
  ## distributed\_cache\_file\_cache\_name
</div>

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

ClickHouse Cloud でのみ有効です。CI テスト専用の設定で、分散キャッシュで使用するファイルシステムキャッシュ名を指定します。

<div id="distributed_cache_log_mode">
  ## distributed\_cache\_log\_mode
</div>

<SettingsInfoBlock type="DistributedCacheLogMode" default_value="on_error" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "on_error"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。system.distributed\_cache\_log への書き込みモードです。

<div id="distributed_cache_max_unacked_inflight_packets">
  ## distributed\_cache\_max\_unacked\_inflight\_packets
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "10"},{"label": "ClickHouse Cloud 用の設定"}]}]} />

ClickHouse Cloudでのみ有効です。単一の分散キャッシュ読み取りリクエストで、未確認応答のまま転送中のパケットの最大数

<div id="distributed_cache_min_bytes_for_seek">
  ## distributed\_cache\_min\_bytes\_for\_seek
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "新しい非公開設定。"}]}]} />

ClickHouse Cloud でのみ有効です。分散キャッシュで seek を行う際の最小バイト数です。

<div id="distributed_cache_pool_behaviour_on_limit">
  ## distributed\_cache\_pool\_behaviour\_on\_limit
</div>

<SettingsInfoBlock type="DistributedCachePoolBehaviourOnLimit" default_value="wait" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "wait"},{"label": "Cloud のみ"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "allocate_bypassing_pool"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。プールの上限に達したときの分散キャッシュ接続の動作を指定します

<div id="distributed_cache_prefer_bigger_buffer_size">
  ## distributed\_cache\_prefer\_bigger\_buffer\_size
</div>

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

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

ClickHouse Cloud でのみ有効です。filesystem\_cache\_prefer\_bigger\_buffer\_size と同様ですが、分散キャッシュ用です。

<div id="distributed_cache_read_only_from_current_az">
  ## distributed\_cache\_read\_only\_from\_current\_az
</div>

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

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

ClickHouse Cloud でのみ有効です。現在のアベイラビリティゾーンからのみ読み取るようにします。無効にすると、すべてのアベイラビリティゾーンにあるすべてのキャッシュサーバーから読み取ります。

<div id="distributed_cache_read_request_max_tries">
  ## distributed\_cache\_read\_request\_max\_tries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "10"},{"label": "設定値の変更"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "20"},{"label": "新しい設定"}]}]} />

ClickHouse Cloud でのみ有効です。分散キャッシュの読み取りリクエストが失敗した場合の再試行回数

<div id="distributed_cache_receive_response_wait_milliseconds">
  ## distributed\_cache\_receive\_response\_wait\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "60000"},{"label": "ClickHouse Cloud でのみ有効な設定"}]}]} />

ClickHouse Cloud でのみ有効です。分散キャッシュからリクエストに対するデータを受信するまでの待機時間 (ミリ秒)

<div id="distributed_cache_receive_timeout_milliseconds">
  ## distributed\_cache\_receive\_timeout\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "10000"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。分散キャッシュからあらゆる種類の応答を受信するまでの待機時間 (ミリ秒) 。

Cloud でのデフォルト値: `20000`.

<div id="distributed_cache_receive_timeout_ms">
  ## distributed\_cache\_receive\_timeout\_ms
</div>

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

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

ClickHouse Cloudでのみ有効です。分散キャッシュサーバーからデータを受信する際のタイムアウトをミリ秒単位で指定します。この期間内に1バイトも受信されなかった場合、例外がスローされます。

<div id="distributed_cache_send_timeout_ms">
  ## distributed\_cache\_send\_timeout\_ms
</div>

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

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

ClickHouse Cloud でのみ有効です。distributed cache server へのデータ送信のタイムアウトをミリ秒単位で指定します。クライアントがデータを送信する必要があるにもかかわらず、この時間内に 1 バイトも送信できない場合は、例外がスローされます。

<div id="distributed_cache_tcp_keep_alive_timeout_ms">
  ## distributed\_cache\_tcp\_keep\_alive\_timeout\_ms
</div>

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

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

ClickHouse Cloud でのみ有効です。TCP が keepalive プローブの送信を開始するまでに、分散キャッシュサーバーへの接続がアイドル状態のままでいる必要がある時間をミリ秒単位で指定します。

<div id="distributed_cache_throw_on_error">
  ## distributed\_cache\_throw\_on\_error
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "ClickHouse Cloud 用の設定"}]}]} />

ClickHouse Cloud でのみ有効です。分散キャッシュとの通信中に発生した例外、または分散キャッシュから返された例外を再スローします。それ以外の場合、エラー時は分散キャッシュをスキップする動作にフォールバックします。

<div id="distributed_cache_use_clients_cache_for_read">
  ## distributed\_cache\_use\_clients\_cache\_for\_read
</div>

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

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

ClickHouse Cloud でのみ有効です。読み取りリクエストにはクライアント cache を使用します。

<div id="distributed_cache_use_clients_cache_for_write">
  ## distributed\_cache\_use\_clients\_cache\_for\_write
</div>

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

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

ClickHouse Cloud でのみ有効です。書き込みリクエストにクライアントの cache を使用します。

<div id="distributed_cache_wait_connection_from_pool_milliseconds">
  ## distributed\_cache\_wait\_connection\_from\_pool\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "100"},{"label": "ClickHouse Cloud向けの設定"}]}]} />

ClickHouse Cloudでのみ有効です。distributed\_cache\_pool\_behaviour\_on\_limit が wait の場合、接続プールから接続を取得するまでの待機時間 (ミリ秒) 。

<div id="distributed_cache_write_request_max_tries">
  ## distributed\_cache\_write\_request\_max\_tries
</div>

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

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

ClickHouse Cloud でのみ有効です。分散キャッシュの書き込みリクエストが失敗した場合の再試行回数

<div id="distributed_connections_pool_size">
  ## distributed\_connections\_pool\_size
</div>

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

単一の分散テーブルに対するすべてのクエリの分散処理で使用する、リモートサーバーへの同時接続数の上限です。値は、クラスター内のサーバー数以上に設定することを推奨します。

<div id="distributed_ddl_entry_format_version">
  ## distributed\_ddl\_entry\_format\_version
</div>

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

distributed DDL (ON CLUSTER) クエリの互換性バージョンです

Cloud でのデフォルト値: `6`.

<div id="distributed_ddl_output_mode">
  ## distributed\_ddl\_output\_mode
</div>

<SettingsInfoBlock type="DistributedDDLOutputMode" default_value="throw" />

分散 DDL クエリの結果のフォーマットを設定します。

設定可能な値:

* `throw` — クエリが完了したすべてのホストについて、クエリの実行ステータスを含む結果セットを返します。一部のホストでクエリが失敗した場合は、最初の例外を再送出します。一部のホストでまだクエリが完了しておらず、[distributed\_ddl\_task\_timeout](#distributed_ddl_task_timeout) を超過した場合は、`TIMEOUT_EXCEEDED` 例外を送出します。
* `none` — `throw` と似ていますが、分散 DDL クエリは結果セットを返しません。
* `null_status_on_timeout` — 対応するホストでクエリがまだ完了していない場合、`TIMEOUT_EXCEEDED` を送出する代わりに、結果セットの一部の行で実行ステータスとして `NULL` を返します。
* `never_throw` — 一部のホストでクエリが失敗していても、`TIMEOUT_EXCEEDED` を送出せず、例外の再送出も行いません。
* `none_only_active` - `none` と似ていますが、`Replicated` データベースの非アクティブなレプリカは待機しません。注: このモードでは、一部のレプリカでクエリが実行されなかったことや、そのクエリがバックグラウンドで実行されることを判別できません。
* `null_status_on_timeout_only_active` — `null_status_on_timeout` と似ていますが、`Replicated` データベースの非アクティブなレプリカは待機しません
* `throw_only_active` — `throw` と似ていますが、`Replicated` データベースの非アクティブなレプリカは待機しません

Cloud でのデフォルト値: `none_only_active`.

<div id="distributed_ddl_task_timeout">
  ## distributed\_ddl\_task\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="180" />

クラスター内のすべてのホストからの DDLクエリの応答に対するタイムアウトを設定します。DDL リクエストがすべてのホストで実行されていない場合、応答にはタイムアウトエラーが含まれ、リクエストは非同期モードで実行されます。負の値は無制限を意味します。

設定可能な値:

* 正の整数。
* 0 — 非同期モード。
* 負の整数 — タイムアウトなし。

<div id="distributed_foreground_insert">
  ## distributed\_foreground\_insert
</div>

**別名**: `insert_distributed_sync`

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

[Distributed](/ja/reference/engines/table-engines/special/distributed) テーブルへのデータの同期挿入を有効または無効にします。

デフォルトでは、`Distributed` テーブルにデータを挿入すると、ClickHouse サーバーはバックグラウンドモードでクラスターのノードにデータを送信します。`distributed_foreground_insert=1` の場合、データは同期的に処理され、すべての分片にすべてのデータが保存されて初めて `INSERT` 操作は成功します (`internal_replication` が true の場合は、各分片で少なくとも 1 つのレプリカ) 。

設定可能な値:

* `0` — データはバックグラウンドモードで挿入されます。
* `1` — データは同期モードで挿入されます。

Cloud でのデフォルト値: `1`。

**関連項目**

* [Distributed テーブルエンジン](/ja/reference/engines/table-engines/special/distributed)
* [分散テーブルの管理](/ja/reference/statements/system#managing-distributed-tables)

<div id="distributed_group_by_no_merge">
  ## distributed\_group\_by\_no\_merge
</div>

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

分散クエリ処理で、異なるサーバーからの集約状態をマージしません。異なる分片に異なるキーがあることが確実な場合に使用できます。

設定可能な値:

* `0` — 無効 (最終的なクエリ処理はイニシエーター ノードで行われます) 。
* `1` - 分散クエリ処理で、異なるサーバーからの集約状態をマージしません (クエリは分片上で完全に処理され、イニシエーターはデータをプロキシするだけです) 。異なる分片に異なるキーがあることが確実な場合に使用できます。
* `2` - `1` と同じですが、`ORDER BY` と `LIMIT` はイニシエーターで適用します (`distributed_group_by_no_merge=1` のように、クエリがリモート ノード上で完全に処理される場合は適用できません)  (`ORDER BY` や `LIMIT` を含むクエリで使用できます) 。

**例**

```sql theme={null}
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 1
FORMAT PrettyCompactMonoBlock

┌─dummy─┐
│     0 │
│     0 │
└───────┘
```

```sql theme={null}
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 2
FORMAT PrettyCompactMonoBlock

┌─dummy─┐
│     0 │
└───────┘
```

<div id="distributed_index_analysis">
  ## distributed\_index\_analysis
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "新しい実験的な設定"}]}]} />

索引解析はレプリカ間で分散実行されます。
共有ストレージやクラスター内の大規模データで効果を発揮します。
cluster\_for\_parallel\_replicas のレプリカを使用します。

**関連項目**

* [distributed\_index\_analysis\_for\_non\_shared\_merge\_tree](#distributed_index_analysis_for_non_shared_merge_tree)
* [distributed\_index\_analysis\_min\_parts\_to\_activate](/ja/reference/settings/merge-tree-settings#distributed_index_analysis_min_parts_to_activate)
* [distributed\_index\_analysis\_min\_indexes\_bytes\_to\_activate](/ja/reference/settings/merge-tree-settings#distributed_index_analysis_min_indexes_bytes_to_activate)

<div id="distributed_index_analysis_for_non_shared_merge_tree">
  ## distributed\_index\_analysis\_for\_non\_shared\_merge\_tree
</div>

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

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

SharedMergeTree 以外の (Cloud 専用の) エンジンでも、分散索引解析を有効にします。

<div id="distributed_index_analysis_only_on_coordinator">
  ## distributed\_index\_analysis\_only\_on\_coordinator
</div>

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

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

有効にすると、分散索引解析はコーディネーター上でのみ実行されます。
これにより、述語にサブクエリ (例: `IN (SELECT ...)`) が含まれる場合に、O(N^2) のクエリ生成が発生するのを防げます。
そうしないと、各フォロワーレプリカがそれぞれ独自に分散索引解析をトリガーしてしまうためです。
ただし、サブクエリで大きなテーブルを使用する場合は、分散索引解析の効率が低下します。

<div id="distributed_insert_skip_read_only_replicas">
  ## distributed\_insert\_skip\_read\_only\_replicas
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "true の場合、Distributed への INSERT で読み取り専用レプリカをスキップします"}]}]} />

Distributed への INSERT クエリで、読み取り専用レプリカをスキップするかどうかを指定します。

設定可能な値:

* 0 — INSERT は通常どおり実行され、読み取り専用レプリカに送信されると失敗します
* 1 — イニシエーターは、データを分片に送信する前に読み取り専用レプリカをスキップします。

<div id="distributed_plan_default_reader_bucket_count">
  ## distributed\_plan\_default\_reader\_bucket\_count
</div>

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

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

分散クエリでの並列読み取りに使用されるデフォルトのタスク数です。タスクはレプリカ間で分散されます。

<div id="distributed_plan_default_shuffle_join_bucket_count">
  ## distributed\_plan\_default\_shuffle\_join\_bucket\_count
</div>

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

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

分散シャッフルハッシュ結合のデフォルトのバケット数。

<div id="distributed_plan_execute_locally">
  ## distributed\_plan\_execute\_locally
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "新しい実験的な設定"}]}]} />

分散クエリプラン内のすべてのタスクをローカルで実行します。テストやデバッグに役立ちます。

<div id="distributed_plan_force_exchange_kind">
  ## distributed\_plan\_force\_exchange\_kind
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": ""},{"label": "新しい実験的な設定"}]}]} />

分散クエリの各ステージ間で、指定した種類の Exchange 演算子を使用するよう強制します。

設定可能な値:

* '' - どの種類の Exchange 演算子も強制せず、オプティマイザに選択させます。
* 'Persisted' - オブジェクトストレージ上の一時ファイルを使用します。
* 'Streaming' - Exchange データをネットワーク経由でストリーミングします。

<div id="distributed_plan_force_shuffle_aggregation">
  ## distributed\_plan\_force\_shuffle\_aggregation
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "新しい実験的な設定"}]}]} />

分散クエリプランで、PartialAggregation + Merge の代わりに Shuffle 集約戦略を使用します。

<div id="distributed_plan_max_rows_to_broadcast">
  ## distributed\_plan\_max\_rows\_to\_broadcast
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "20000"},{"label": "新しい実験的な設定"}]}]} />

分散クエリプランで、shuffle join の代わりに broadcast join を使用する場合の最大行数。

<div id="distributed_plan_optimize_exchanges">
  ## distributed\_plan\_optimize\_exchanges
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "新しい実験的な設定"}]}]} />

分散クエリプラン内の不要な exchange を削除します。デバッグ時は無効にしてください。

<div id="distributed_plan_prefer_replicas_over_workers">
  ## distributed\_plan\_prefer\_replicas\_over\_workers
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "レプリカで実行するために分散クエリプランをシリアライズする新しい設定"}]}]} />

レプリカで実行するため、分散クエリプランをシリアライズします。

<div id="distributed_product_mode">
  ## distributed\_product\_mode
</div>

<SettingsInfoBlock type="DistributedProductMode" default_value="deny" />

[分散サブクエリ](/ja/reference/statements/in)の動作を変更します。

ClickHouse は、クエリに分散テーブルの積が含まれる場合、つまり分散テーブルへのクエリに、その分散テーブルに対する non-GLOBAL サブクエリが含まれる場合に、この設定を適用します。

制限事項:

* IN および JOIN のサブクエリにのみ適用されます。
* FROM 句で、複数の分片を含む分散テーブルが使用されている場合にのみ適用されます。
* サブクエリの対象が、複数の分片を含む分散テーブルである場合にのみ適用されます。
* テーブル値[remote](/ja/reference/functions/table-functions/remote)関数には適用されません。

設定可能な値:

* `deny` — デフォルト値。これらの種類のサブクエリの使用を禁止します ("Double-distributed in/JOIN subqueries is denied" 例外を返します) 。
* `local` — サブクエリ内の database と table を、通常の `IN`/`JOIN` はそのままに、宛先 server (分片) 上のローカルなものに置き換えます。
* `global` — `IN`/`JOIN` クエリを `GLOBAL IN`/`GLOBAL JOIN` に置き換えます。
* `allow` — これらの種類のサブクエリの使用を許可します。

<div id="distributed_push_down_limit">
  ## distributed\_push\_down\_limit
</div>

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

各分片に [LIMIT](#limit) を個別に適用するかどうかを切り替えます。

これにより、以下を回避できます。

* 余分な行をネットワーク越しに送信すること。
* イニシエーターで LIMIT を超える行を処理すること。

バージョン 21.9 以降では、結果が不正確になることはなくなりました。これは、`distributed_push_down_limit` がクエリ実行を変更するのは、少なくとも次の条件のいずれかを満たす場合に限られるためです。

* [distributed\_group\_by\_no\_merge](#distributed_group_by_no_merge) > 0。
* クエリに `GROUP BY`/`DISTINCT`/`LIMIT BY` **がなく**、`ORDER BY`/`LIMIT` **がある** 場合。
* クエリに `GROUP BY`/`DISTINCT`/`LIMIT BY` と `ORDER BY`/`LIMIT` **があり**、かつ次の条件を満たす場合:
  * [optimize\_skip\_unused\_shards](#optimize_skip_unused_shards) が有効。
  * [optimize\_distributed\_group\_by\_sharding\_key](#optimize_distributed_group_by_sharding_key) が有効。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

関連項目:

* [distributed\_group\_by\_no\_merge](#distributed_group_by_no_merge)
* [optimize\_skip\_unused\_shards](#optimize_skip_unused_shards)
* [optimize\_distributed\_group\_by\_sharding\_key](#optimize_distributed_group_by_sharding_key)

<div id="distributed_replica_error_cap">
  ## distributed\_replica\_error\_cap
</div>

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

* 型: unsigned int
* デフォルト値: 1000

各レプリカのエラー数はこの値が上限となり、1 つのレプリカに過剰な数のエラーが蓄積されるのを防ぎます。

関連項目:

* [load\_balancing](#load_balancing-round_robin)
* [テーブルエンジン Distributed](/ja/reference/engines/table-engines/special/distributed)
* [distributed\_replica\_error\_half\_life](#distributed_replica_error_half_life)
* [distributed\_replica\_max\_ignored\_errors](#distributed_replica_max_ignored_errors)

<div id="distributed_replica_error_half_life">
  ## distributed\_replica\_error\_half\_life
</div>

<SettingsInfoBlock type="Seconds" default_value="60" />

* Type: Seconds
* デフォルト値: 60 Seconds

分散テーブルで発生したエラーがどれくらいの速さで 0 に戻るかを制御します。たとえば、あるレプリカがしばらく利用不能で、その間に 5 件のエラーが蓄積し、distributed\_replica\_error\_half\_life が 1 秒に設定されている場合、そのレプリカは最後のエラーから 3 秒後に正常と見なされます。

関連項目:

* [load\_balancing](#load_balancing-round_robin)
* [Table engine Distributed](/ja/reference/engines/table-engines/special/distributed)
* [distributed\_replica\_error\_cap](#distributed_replica_error_cap)
* [distributed\_replica\_max\_ignored\_errors](#distributed_replica_max_ignored_errors)

<div id="distributed_replica_max_ignored_errors">
  ## distributed\_replica\_max\_ignored\_errors
</div>

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

* 型: unsigned int
* デフォルト値: 0

レプリカの選択時に (`load_balancing` アルゴリズムに従って) 無視されるエラーの数です。

関連項目:

* [load\_balancing](#load_balancing-round_robin)
* [Table engine Distributed](/ja/reference/engines/table-engines/special/distributed)
* [distributed\_replica\_error\_cap](#distributed_replica_error_cap)
* [distributed\_replica\_error\_half\_life](#distributed_replica_error_half_life)

<div id="do_not_merge_across_partitions_select_final">
  ## do\_not\_merge\_across\_partitions\_select\_final
</div>

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

異なるパーティションをまたぐマージを回避することで、FINAL クエリを改善します。

有効にすると、SELECT FINAL クエリの実行時に、異なるパーティションのパーツがまとめてマージされなくなります。代わりに、マージは各パーティション内でのみ個別に行われます。これにより、パーティション化されたテーブルを扱う際のクエリパフォーマンスが大幅に向上する可能性があります。

<div id="dynamic_disk_allow_from_env">
  ## dynamic\_disk\_allow\_from\_env
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "動的ディスク設定（`disk()` 関数）で `from_env` 置換を許可する新しい設定です。セキュリティ上の理由から、デフォルトでは無効になっています。"}]}]} />

動的ディスク設定 (つまり `disk()` 関数の引数) で `from_env` 置換を使用できるようにします。
テーブルストレージの定義時にユーザーが任意の環境変数を読み取れないよう、デフォルトでは無効になっています。

<div id="dynamic_disk_allow_from_zk">
  ## dynamic\_disk\_allow\_from\_zk
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "動的ディスク設定（`disk()` 関数）で `from_zk` 置換を許可する新しい設定です。デフォルトでは無効です。"}]}]} />

動的ディスク設定 (つまり `disk()` 関数の引数) で `from_zk` 置換を使用できるようにします。
デフォルトでは無効です。

<div id="dynamic_disk_allow_include">
  ## dynamic\_disk\_allow\_include
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "動的ディスク設定（`disk()` 関数）で `include` の使用を許可する新しい設定です。デフォルトでは無効です。"}]}]} />

動的ディスク設定 (つまり `disk()` 関数の引数) で `include` を使用できるようにします。
デフォルトでは無効です。

<div id="dynamic_throw_on_type_mismatch">
  ## dynamic\_throw\_on\_type\_mismatch
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "デフォルトの Dynamic 実装における型不一致時の動作を制御する新しい設定"}]}]} />

デフォルト実装を使用して [Dynamic](/ja/reference/data-types/dynamic) カラムに関数を適用する際に、
実際の型がその関数と互換性のない行でどう動作するかを制御します。

* `true` (デフォルト) — 例外をスローします。
* `false` — 代わりに、それらの行では `NULL` を返します。

<div id="empty_result_for_aggregation_by_constant_keys_on_empty_set">
  ## empty\_result\_for\_aggregation\_by\_constant\_keys\_on\_empty\_set
</div>

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

空の入力セットを定数キーで集約する場合、空の結果を返します。

<div id="empty_result_for_aggregation_by_empty_set">
  ## empty\_result\_for\_aggregation\_by\_empty\_set
</div>

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

空のセットをキーなしで集約する際に、空の結果を返します。

<div id="enable_adaptive_memory_spill_scheduler">
  ## enable\_adaptive\_memory\_spill\_scheduler
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "新しい設定。メモリ内のデータを外部ストレージへ適応的にスピルできるようにします。"}]}]} />

プロセッサによるデータの外部ストレージへの適応的なスピルをトリガーします。現在サポートされているのは grace join のみです。

<div id="enable_add_distinct_to_in_subqueries">
  ## enable\_add\_distinct\_to\_in\_subqueries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "分散 `IN` サブクエリで転送される一時テーブルのサイズを削減するための新しい設定。"}]}]} />

`IN` サブクエリで `DISTINCT` を有効にします。これはトレードオフのある設定です。有効にすると、一意の値のみが送信されるため、分散 `IN` サブクエリで転送される一時テーブルのサイズを大幅に削減でき、分片間のデータ転送を大きく高速化できます。
ただし、この設定を有効にすると、重複排除 (DISTINCT) を実行する必要があるため、各ノードで追加のマージ処理負荷が発生します。ネットワーク転送がボトルネックで、追加のマージコストを許容できる場合にこの設定を使用してください。

<div id="enable_automatic_decision_for_merging_across_partitions_for_final">
  ## enable\_automatic\_decision\_for\_merging\_across\_partitions\_for\_final
</div>

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

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

この設定を有効にすると、パーティションキー式が決定論的であり、かつその式で使用されるすべてのカラムが主キーに含まれている場合、ClickHouse はこの最適化を自動的に有効化します。
この自動導出により、同じ主キー値を持つ行は常に同じパーティションに属することが保証されるため、パーティションをまたぐマージを回避しても安全です。

<div id="enable_blob_storage_log">
  ## enable\_blob\_storage\_log
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "ブロブストレージ操作に関する情報を system.blob_storage_log テーブルに書き込む"}]}]} />

ブロブストレージ操作に関する情報を system.blob\_storage\_log テーブルに書き込む

<div id="enable_blob_storage_log_for_read_operations">
  ## enable\_blob\_storage\_log\_for\_read\_operations
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "ブロブストレージの読み取り操作を system.blob_storage_log に記録するための新しい設定"}]}]} />

ブロブストレージの読み取り操作に関する情報を `system.blob_storage_log` テーブルに書き込みます。
これを有効にするには、`enable_blob_storage_log` も有効になっている必要があります。

<div id="enable_early_constant_folding">
  ## enable\_early\_constant\_folding
</div>

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

関数やサブクエリの結果を解析し、定数が含まれている場合にクエリを書き換えるクエリ最適化を有効にします

<div id="enable_extended_results_for_datetime_functions">
  ## enable\_extended\_results\_for\_datetime\_functions
</div>

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

型 `Date32` の結果を拡張範囲で (型 `Date` と比較して) 返すか、または
型 `DateTime64` の結果を拡張範囲で (型 `DateTime` と比較して) 返すかどうかを有効または無効にします。

設定可能な値:

* `0` — 関数は、すべての型の引数に対して `Date` または `DateTime` を返します。
* `1` — 関数は、引数が `Date32` または `DateTime64` の場合は `Date32` または `DateTime64` を返し、それ以外の場合は `Date` または `DateTime` を返します。

以下の表は、各種の日付時刻関数におけるこの設定の動作を示しています。

| 関数                        | `enable_extended_results_for_datetime_functions = 0`          | `enable_extended_results_for_datetime_functions = 1`                                                                 |
| ------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `toStartOfYear`           | `Date` または `DateTime` を返す                                     | 入力が `Date`/`DateTime` の場合は `Date`/`DateTime` を返します<br />入力が `Date32`/`DateTime64` の場合は `Date32`/`DateTime64` を返します   |
| `toStartOfISOYear`        | `Date` または `DateTime` を返す                                     | `Date`/`DateTime`型の入力には`Date`/`DateTime`を返します<br />`Date32`/`DateTime64`型の入力には`Date32`/`DateTime64`を返します             |
| `toStartOfQuarter`        | `Date` または `DateTime` を返す                                     | `Date`/`DateTime` 型の入力に対しては `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `Date32`/`DateTime64` を返します |
| `toStartOfMonth`          | `Date` または `DateTime` を返す                                     | `Date`/`DateTime` 型の入力に対しては `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `Date32`/`DateTime64` を返します |
| `toStartOfWeek`           | `Date` または `DateTime` を返す                                     | `Date`/`DateTime` 型の入力に対しては `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `Date32`/`DateTime64` を返します |
| `toLastDayOfWeek`         | `Date` または `DateTime` を返す                                     | `Date`/`DateTime` の入力に対しては `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` の入力に対しては `Date32`/`DateTime64` を返します   |
| `toLastDayOfMonth`        | `Date` または `DateTime` を返します                                   | `Date`/`DateTime` 型の入力には `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力には `Date32`/`DateTime64` を返します       |
| `toMonday`                | `Date` または `DateTime` を返します                                   | `Date`/`DateTime` 型の入力には `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力には `Date32`/`DateTime64` を返します       |
| `toStartOfDay`            | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では正しい結果が得られません*     | `Date`/`DateTime` 型の入力に対しては `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `DateTime64` を返します                 |
| `toStartOfHour`           | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では正しい結果が得られません*     | `Date`/`DateTime` 型の入力に対しては `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `DateTime64` を返します                 |
| `toStartOfFifteenMinutes` | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では正しい結果が得られません*     | `Date`/`DateTime` 型の入力に対しては `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `DateTime64` を返します                 |
| `toStartOfTenMinutes`     | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では、正しい結果が得られません*    | `Date`/`DateTime` 入力の場合は `DateTime` を返します<br />`Date32`/`DateTime64` 入力の場合は `DateTime64` を返します                       |
| `toStartOfFiveMinutes`    | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では誤った結果が返されます*      | `Date`/`DateTime` 型の入力に対しては `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `DateTime64` を返します                 |
| `toStartOfMinute`         | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では誤った結果になる可能性があります* | `Date`/`DateTime` 型の入力では `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力では `DateTime64` を返します                       |
| `timeSlot`                | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では誤った結果を返す場合があります*  | `Date`/`DateTime` 型の入力では `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力では `DateTime64` を返します                       |

<div id="enable_filesystem_cache">
  ## enable\_filesystem\_cache
</div>

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

リモートファイルシステムに対して cache を使用します。この設定でディスクの cache をオン/オフすることはできません (ディスクの config で行う必要があります) が、必要に応じて一部のクエリでは cache をバイパスできます

<div id="enable_filesystem_cache_log">
  ## enable\_filesystem\_cache\_log
</div>

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

各クエリのfilesystemのキャッシュログを記録できるようにします

<div id="enable_filesystem_cache_on_write_operations">
  ## enable\_filesystem\_cache\_on\_write\_operations
</div>

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

`write-through` cache を有効または無効にします。`false` に設定すると、書き込み操作では `write-through` cache が無効になります。`true` に設定すると、server config の cache disk configuration セクションで `cache_on_write_operations` が有効になっている場合に限り、`write-through` cache も有効になります。
詳細については、["Using local cache"](/ja/concepts/features/configuration/server-config/storing-data#using-local-cache) を参照してください。

Cloud でのデフォルト値: `1`.

<div id="enable_filesystem_read_prefetches_log">
  ## enable\_filesystem\_read\_prefetches\_log
</div>

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

クエリ実行中の情報を system.filesystem prefetch\_log に記録します。テストまたはデバッグの場合にのみ使用すべきで、デフォルトで有効にすることは推奨されません

<div id="enable_full_text_index">
  ## enable\_full\_text\_index
</div>

**別名**: `allow_experimental_full_text_index`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "テキスト索引が GA になりました"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "テキスト索引はベータに移行しました。"}]}]} />

true に設定すると、テキスト索引の使用が許可されます。

<div id="enable_global_with_statement">
  ## enable\_global\_with\_statement
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.2"},{"label": "1"},{"label": "デフォルトで、WITHステートメントをUNIONクエリおよびすべてのサブクエリに伝播します"}]}]} />

WITHステートメントをUNIONクエリおよびすべてのサブクエリに伝播します

<div id="enable_hdfs_pread">
  ## enable\_hdfs\_pread
</div>

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

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

HDFS ファイルに対する pread の有効/無効を切り替えます。デフォルトでは `hdfsPread` が使用されます。無効にすると、HDFS ファイルの読み取りには `hdfsRead` と `hdfsSeek` が使用されます。

<div id="enable_http_compression">
  ## enable\_http\_compression
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "一般的に有益と考えられます"}]}]} />

HTTPリクエストへの応答でデータの圧縮を有効または無効にします。

詳細については、[HTTPインターフェイスの説明](/ja/concepts/features/interfaces/http)を参照してください。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="enable_job_stack_trace">
  ## enable\_job\_stack\_trace
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "パフォーマンスオーバーヘッドを避けるため、この設定はデフォルトで無効になりました。"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "0"},{"label": "ジョブのスケジューリング時のスタックトレース収集を有効にします。パフォーマンスオーバーヘッドを避けるため、デフォルトでは無効です。"}]}]} />

ジョブの実行結果として例外が発生した場合に、ジョブ作成元のスタックトレースを出力します。パフォーマンスオーバーヘッドを避けるため、デフォルトでは無効です。

<div id="enable_join_fixed_hash_table_conversion">
  ## enable\_join\_fixed\_hash\_table\_conversion
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "キーが値域の小さい単一の整数である場合に、JOIN 用の hash table をフラットな配列に変換できるようにする新しい設定。"}]}]} />

キーが値域の小さい単一の整数である場合に、JOIN 用の hash table をフラットな配列に変換できるようにします。

<div id="enable_join_runtime_filters">
  ## enable\_join\_runtime\_filters
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "この最適化を有効にしました"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "新しい設定"}]}]} />

実行時に右側から収集した JOIN の結合キーの集合を使って、左側を絞り込みます。

<div id="enable_join_transitive_predicates">
  ## enable\_join\_transitive\_predicates
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "JOIN 順序の最適化のために、推移的な等値 JOIN 述語を推論する新しい設定。"}]}]} />

既存の JOIN 条件から、推移的な等値 JOIN 述語を推論します。
たとえば、`A.x = B.x` と `B.x = C.x` がある場合、`A.x = C.x` という述語も
追加されるため、JOIN 順序オプティマイザは直接 (A JOIN C) のプランを検討できます。

<div id="enable_lazy_columns_replication">
  ## enable\_lazy\_columns\_replication
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "デフォルトで JOIN と ARRAY JOIN におけるカラムの遅延レプリケーションを有効にする"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "JOIN と ARRAY JOIN におけるカラムの遅延レプリケーションを有効にする設定を追加"}]}]} />

JOIN および ARRAY JOIN におけるカラムの遅延レプリケーションを有効にします。これにより、同じ行をメモリ上で何度も不要にコピーするのを防げます。

<div id="enable_lightweight_delete">
  ## enable\_lightweight\_delete
</div>

**別名**: `allow_experimental_lightweight_delete`

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

MergeTree テーブルに対する論理削除 DELETE ミューテーションを有効にします。

<div id="enable_lightweight_update">
  ## enable\_lightweight\_update
</div>

**別名**: `allow_experimental_lightweight_update`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "論理更新はベータに移行しました。設定 'allow_experimental_lightweight_update' の別名が追加されました。"}]}]} />

論理更新の使用を有効にします。

<div id="enable_materialized_cte">
  ## enable\_materialized\_cte
</div>

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

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

マテリアライズド共通テーブル式を有効にします。enable\_global\_with\_statement よりも優先されます

<div id="enable_memory_bound_merging_of_aggregation_results">
  ## enable\_memory\_bound\_merging\_of\_aggregation\_results
</div>

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

集約のためのメモリ制約付きマージ戦略を有効にします。

<div id="enable_multiple_prewhere_read_steps">
  ## enable\_multiple\_prewhere\_read\_steps
</div>

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

WHERE から PREWHERE により多くの条件を移し、AND で結合された複数の条件がある場合は、ディスクからの読み取りとフィルタリングを複数のステップで行います

<div id="enable_named_columns_in_function_tuple">
  ## enable\_named\_columns\_in\_function\_tuple
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "すべての名前が一意で、引用符なしの識別子として扱える場合、tuple() 関数で名前付きタプルを生成します。"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "使い勝手の改善が行われるまで無効化"}]}]} />

すべての名前が一意で、引用符なしの識別子として扱える場合、tuple() 関数で名前付きタプルを生成します。

<div id="enable_optimize_predicate_expression">
  ## enable\_optimize\_predicate\_expression
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "18.12.17"},{"label": "1"},{"label": "デフォルトでサブクエリへのプレディケートプッシュダウンを最適化"}]}]} />

`SELECT` クエリでプレディケートプッシュダウンを有効にします。

プレディケートプッシュダウンにより、分散クエリのネットワークトラフィックを大幅に削減できる場合があります。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

使用方法

次のクエリを考えてみましょう:

1. `SELECT count() FROM test_table WHERE date = '2018-10-10'`
2. `SELECT count() FROM (SELECT * FROM test_table) WHERE date = '2018-10-10'`

`enable_optimize_predicate_expression = 1` の場合、ClickHouse は処理時に `WHERE` をサブクエリへ適用するため、これらのクエリの実行時間は同じになります。

`enable_optimize_predicate_expression = 0` の場合、2 番目のクエリの実行時間はかなり長くなります。これは、サブクエリの完了後に `WHERE` 句がすべてのデータに適用されるためです。

<div id="enable_optimize_predicate_expression_to_final_subquery">
  ## enable\_optimize\_predicate\_expression\_to\_final\_subquery
</div>

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

述語を FINAL サブクエリにプッシュダウンすることを許可します。

<div id="enable_order_by_all">
  ## enable\_order\_by\_all
</div>

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

`ORDER BY ALL` 構文でのソートを有効または無効にします。詳しくは [ORDER BY](/ja/reference/statements/select/order-by) を参照してください。

設定可能な値:

* 0 — ORDER BY ALL を無効にします。
* 1 — ORDER BY ALL を有効にします。

**例**

クエリ:

```sql theme={null}
CREATE TABLE TAB(C1 Int, C2 Int, ALL Int) ENGINE=Memory();

INSERT INTO TAB VALUES (10, 20, 30), (20, 20, 10), (30, 10, 20);

SELECT * FROM TAB ORDER BY ALL; -- ALL が曖昧であるというエラーを返す

SELECT * FROM TAB ORDER BY ALL SETTINGS enable_order_by_all = 0;
```

結果:

```text theme={null}
┌─C1─┬─C2─┬─ALL─┐
│ 20 │ 20 │  10 │
│ 30 │ 10 │  20 │
│ 10 │ 20 │  30 │
└────┴────┴─────┘
```

<div id="enable_parallel_blocks_marshalling">
  ## enable\_parallel\_blocks\_marshalling
</div>

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

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

分散クエリにのみ影響します。有効にすると、ブロックはイニシエーターへの送信前後に、パイプラインスレッドでシリアライズ／デシリアライズおよび圧縮／伸長されます (つまり、デフォルトよりも高い並列度で処理されます) 。

<div id="enable_parsing_to_custom_serialization">
  ## enable\_parsing\_to\_custom\_serialization
</div>

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

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

true の場合、テーブルから取得したシリアライゼーションのヒントに従って、データをカスタムシリアライゼーション (例: スパース) を持つカラムに直接パースできます。

<div id="enable_positional_arguments">
  ## enable\_positional\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "1"},{"label": "デフォルトで位置引数機能を有効にする"}]}]} />

[GROUP BY](/ja/reference/statements/select/group-by)、[LIMIT BY](/ja/reference/statements/select/limit-by)、[ORDER BY](/ja/reference/statements/select/order-by) ステートメントで、位置引数のサポートを有効または無効にします。

設定可能な値:

* 0 — 位置引数はサポートされません。
* 1 — 位置引数がサポートされます。カラム名の代わりにカラム番号を使用できます。

**例**

クエリ:

```sql theme={null}
CREATE TABLE positional_arguments(one Int, two Int, three Int) ENGINE=Memory();

INSERT INTO positional_arguments VALUES (10, 20, 30), (20, 20, 10), (30, 10, 20);

SELECT * FROM positional_arguments ORDER BY 2,3;
```

結果:

```text theme={null}
┌─one─┬─two─┬─three─┐
│  30 │  10 │   20  │
│  20 │  20 │   10  │
│  10 │  20 │   30  │
└─────┴─────┴───────┘
```

<div id="enable_positional_arguments_for_projections">
  ## enable\_positional\_arguments\_for\_projections
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "プロジェクションでの位置引数を制御する新しい設定。"}]}, {"id": "row-2","items": [{"label": "25.11"},{"label": "0"},{"label": "プロジェクションでの位置引数を制御する新しい設定。"}]}, {"id": "row-3","items": [{"label": "25.10"},{"label": "0"},{"label": "プロジェクションでの位置引数を制御する新しい設定。"}]}]} />

PROJECTION 定義で位置引数をサポートするかどうかを切り替えます。あわせて、[enable\_positional\_arguments](#enable_positional_arguments) 設定も参照してください。

<Note>
  これは上級者向けの設定です。ClickHouse を使い始めたばかりであれば、変更しないでください。
</Note>

設定可能な値:

* 0 — 位置引数はサポートされません。
* 1 — 位置引数がサポートされます。カラム名の代わりにカラム番号を使用できます。

<div id="enable_producing_buckets_out_of_order_in_aggregation">
  ## enable\_producing\_buckets\_out\_of\_order\_in\_aggregation
</div>

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

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

メモリ効率の高い集約 (`distributed_aggregation_memory_efficient` を参照) で、バケットを順不同で生成できるようにします。
これにより、集約バケットのサイズに偏りがある場合、レプリカは小さい id の重いバケットをまだ処理している間でも、より大きい id のバケットをイニシエーターに送信できるため、パフォーマンスが向上する可能性があります。
欠点として、メモリ使用量が増える可能性があります。

<div id="enable_reads_from_query_cache">
  ## enable\_reads\_from\_query\_cache
</div>

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

有効にすると、`SELECT` クエリの結果は [query cache](/ja/concepts/features/performance/caches/query-cache) から取得されます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="enable_s3_requests_logging">
  ## enable\_s3\_requests\_logging
</div>

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

S3 リクエストの非常に詳細なログを有効にします。デバッグ時にのみ有用です。

<div id="enable_scalar_subquery_optimization">
  ## enable\_scalar\_subquery\_optimization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.18"},{"label": "1"},{"label": "スカラーサブクエリで大きなスカラー値のシリアライズ／デシリアライズを防ぎ、同じサブクエリが複数回実行されるのを回避できる場合があります"}]}]} />

true に設定すると、スカラーサブクエリで大きなスカラー値のシリアライズ／デシリアライズを防ぎ、同じサブクエリが複数回実行されるのを回避できる場合があります。

<div id="enable_scopes_for_with_statement">
  ## enable\_scopes\_for\_with\_statement
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "旧アナライザとの後方互換性のための新しい設定。"}]}, {"id": "row-2","items": [{"label": "25.6"},{"label": "1"},{"label": "旧アナライザとの後方互換性のための新しい設定。"}]}, {"id": "row-3","items": [{"label": "25.5"},{"label": "1"},{"label": "旧アナライザとの後方互換性のための新しい設定。"}]}, {"id": "row-4","items": [{"label": "25.4"},{"label": "1"},{"label": "旧アナライザとの後方互換性のための新しい設定。"}]}]} />

無効にすると、親の WITH 句内の宣言は、現在のスコープ内で宣言された場合と同じスコープで動作します。

これはアナライザの互換性設定であり、旧アナライザで実行できていた一部の無効なクエリを実行できるようにするためのものです。

<div id="enable_shared_storage_snapshot_in_query">
  ## enable\_shared\_storage\_snapshot\_in\_query
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "クエリ内でストレージスナップショットを共有するための新しい設定"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "1"},{"label": "デフォルトでクエリ内のストレージスナップショット共有を有効にする"}]}]} />

有効にすると、1 つのクエリ内のすべてのサブクエリで、各テーブルの同じ StorageSnapshot が共有されます。
これにより、同じテーブルに複数回アクセスする場合でも、クエリ全体でデータの一貫したビューが確保されます。

これは、データパーツの内部整合性が重要なクエリで必要です。例:

```sql theme={null}
SELECT
    count()
FROM events
WHERE (_part, _part_offset) IN (
    SELECT _part, _part_offset
    FROM events
    WHERE user_id = 42
)
```

この設定がない場合、外側のクエリと内側のクエリが異なるデータスナップショットに対して実行される可能性があり、誤った結果につながるおそれがあります。

<Note>
  この設定を有効にすると、プランニング段階の完了後にスナップショットから不要なデータパーツを取り除く最適化が無効になります。
  その結果、長時間実行されるクエリでは、廃止されたパーツがクエリの実行中ずっと保持される可能性があり、パーツのクリーンアップが遅れ、ストレージへの負荷が増大します。

  現在、この設定が適用されるのは MergeTree family のテーブルのみです。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="enable_sharing_sets_for_mutations">
  ## enable\_sharing\_sets\_for\_mutations
</div>

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

同じミューテーション内の異なるタスク間で、IN サブクエリ用に構築された Set オブジェクトを共有できるようにします。これにより、メモリ使用量と CPU 使用量が削減されます

<div id="enable_software_prefetch_in_aggregation">
  ## enable\_software\_prefetch\_in\_aggregation
</div>

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

集計でのソフトウェアプリフェッチの使用を有効にします

<div id="enable_software_prefetch_in_join">
  ## enable\_software\_prefetch\_in\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "ハッシュ結合のプローブフェーズでソフトウェアプリフェッチを使用できるようにします。"}]}]} />

大規模なハッシュテーブルでのメモリアクセス遅延を隠すため、ハッシュ結合のプローブフェーズでソフトウェアプリフェッチを使用できるようにします。

<div id="enable_time_time64_type">
  ## enable\_time\_time64\_type
</div>

**別名**: `allow_experimental_time_time64_type`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "新しい設定。新しい実験的な Time および Time64 データ型を使用できるようになります。"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "1"},{"label": "デフォルトで Time および Time64 型を有効にします"}]}]} />

[Time](/ja/reference/data-types/time) および [Time64](/ja/reference/data-types/time64) データ型を作成できるようになります。

<div id="enable_unaligned_array_join">
  ## enable\_unaligned\_array\_join
</div>

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

サイズの異なる複数の配列に対する ARRAY JOIN を許可します。この設定を有効にすると、配列は最も長い配列に合わせてリサイズされます。

<div id="enable_url_encoding">
  ## enable\_url\_encoding
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "既存の設定のデフォルト値が変更されました"}]}]} />

[URL](/ja/reference/engines/table-engines/special/url) エンジンのテーブルで、uri 内のパスのデコード/エンコードを有効または無効にできます。

デフォルトでは無効です。

<div id="enable_vertical_final">
  ## enable\_vertical\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "バグ修正後、vertical final を再びデフォルトで有効化"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "1"},{"label": "vertical final をデフォルトで使用"}]}]} />

有効にすると、FINAL 時に重複した行を削除済みとしてマークし、行をマージする代わりに後でそれらをフィルタリングして除去します

<div id="enable_writes_to_query_cache">
  ## enable\_writes\_to\_query\_cache
</div>

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

有効にすると、`SELECT` クエリの結果が [query cache](/ja/concepts/features/performance/caches/query-cache) に保存されます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="enforce_strict_identifier_format">
  ## enforce\_strict\_identifier\_format
</div>

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

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

有効にすると、英数字とアンダースコアのみで構成された識別子だけを許可します。

<div id="engine_file_allow_create_multiple_files">
  ## engine\_file\_allow\_create\_multiple\_files
</div>

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

フォーマットに接尾辞 (`JSON`、`ORC`、`Parquet` など) がある場合、Fileエンジンのテーブルで insert のたびに新しいファイルを作成するかどうかを有効または無効にします。有効にすると、insert のたびに次のパターンに従った名前で新しいファイルが作成されます。

`data.Parquet` -> `data.1.Parquet` -> `data.2.Parquet`, etc.

設定可能な値:

* 0 — `INSERT` クエリは新しいデータをファイルの末尾に追加します。
* 1 — `INSERT` クエリは新しいファイルを作成します。

<div id="engine_file_empty_if_not_exists">
  ## engine\_file\_empty\_if\_not\_exists
</div>

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

ファイルが存在しない場合でも、file engineテーブルからデータを選択できるようにします。

設定可能な値:

* 0 — `SELECT` は例外をスローします。
* 1 — `SELECT` は空の結果を返します。

<div id="engine_file_skip_empty_files">
  ## engine\_file\_skip\_empty\_files
</div>

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

[File](/ja/reference/engines/table-engines/special/file) エンジンのテーブルで、空のファイルをスキップするかどうかを有効または無効にします。

設定可能な値:

* 0 — 空のファイルが要求されたフォーマットと互換性がない場合、`SELECT` は例外を返します。
* 1 — 空のファイルに対して `SELECT` は空の結果を返します。

<div id="engine_file_truncate_on_insert">
  ## engine\_file\_truncate\_on\_insert
</div>

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

[File](/ja/reference/engines/table-engines/special/file) エンジンのテーブルで、insert の前に truncate を実行するかどうかを有効または無効にします。

設定可能な値:

* 0 — `INSERT` クエリは新しいデータをファイルの末尾に追記します。
* 1 — `INSERT` クエリはファイルの既存の内容を新しいデータで置き換えます。

<div id="engine_url_skip_empty_files">
  ## engine\_url\_skip\_empty\_files
</div>

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

[URL](/ja/reference/engines/table-engines/special/url) エンジンのテーブルで、空のファイルをスキップするかどうかを設定します。

設定可能な値:

* 0 — 空のファイルが要求されたフォーマットに対応していない場合、`SELECT` は例外をスローします。
* 1 — 空のファイルに対して、`SELECT` は空の結果を返します。

<div id="exact_rows_before_limit">
  ## exact\_rows\_before\_limit
</div>

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

有効にすると、ClickHouse は `rows_before_limit_at_least` 統計について正確な値を返しますが、その代わり、limit に達するまでのデータをすべて読み取る必要があります

<div id="except_default_mode">
  ## except\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

EXCEPT クエリのデフォルトモードを設定します。設定可能な値: 空文字列、'ALL'、'DISTINCT'。空文字列の場合、モードを指定しないクエリは例外を返します。

<div id="exclude_materialize_skip_indexes_on_insert">
  ## exclude\_materialize\_skip\_indexes\_on\_insert
</div>

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

指定したスキップ索引を、INSERT 時に構築・保存の対象から除外します。除外されたスキップ索引は、[マージ時](/ja/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge)または明示的な
[MATERIALIZE INDEX](/ja/reference/statements/alter/skipping-index#materialize-index)クエリによって引き続き構築・保存されます。

[materialize\_skip\_indexes\_on\_insert](#materialize_skip_indexes_on_insert) が false の場合は、効果がありません。

例:

```sql theme={null}
CREATE TABLE tab
(
    a UInt64,
    b UInt64,
    INDEX idx_a a TYPE minmax,
    INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple();

SET exclude_materialize_skip_indexes_on_insert='idx_a'; -- idx_a は INSERT 時に更新されない
--SET exclude_materialize_skip_indexes_on_insert='idx_a, idx_b'; -- どちらの索引も INSERT 時に更新されない

INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- idx_b のみ更新される

-- セッション設定であるため、クエリ単位で設定できる
INSERT INTO tab SELECT number, number / 50 FROM numbers(100, 100) SETTINGS exclude_materialize_skip_indexes_on_insert='idx_b';

ALTER TABLE tab MATERIALIZE INDEX idx_a; -- このクエリで索引を明示的にマテリアライズできる

SET exclude_materialize_skip_indexes_on_insert = DEFAULT; -- 設定をデフォルトにリセットする
```

<div id="execute_exists_as_scalar_subquery">
  ## execute\_exists\_as\_scalar\_subquery
</div>

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

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

非相関の EXISTS サブクエリを、スカラーサブクエリとして実行します。スカラーサブクエリと同様に cache が使用され、結果には定数畳み込みが適用されます。

Cloud でのデフォルト値: `0`.

<div id="external_storage_connect_timeout_sec">
  ## external\_storage\_connect\_timeout\_sec
</div>

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

接続タイムアウト (単位: 秒) 。現在サポートされているのは MySQL のみです

<div id="external_storage_max_read_bytes">
  ## external\_storage\_max\_read\_bytes
</div>

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

外部エンジンを持つテーブルが履歴データをフラッシュする際の最大バイト数を制限します。現在サポートされているのは、MySQLテーブルエンジン、データベースエンジン、およびDictionaryのみです。0 の場合、この設定は無効です

<div id="external_storage_max_read_rows">
  ## external\_storage\_max\_read\_rows
</div>

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

外部エンジンを使用するテーブルで履歴データをフラッシュする際の、最大行数を制限します。現在サポートされているのは、MySQL table engine、データベースエンジン、および Dictionary のみです。0 の場合、この設定は無効です

<div id="external_storage_rw_timeout_sec">
  ## external\_storage\_rw\_timeout\_sec
</div>

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

読み取り/書き込みのタイムアウト (秒) 。現在サポートされているのは MySQL のみです

<div id="external_table_functions_use_nulls">
  ## external\_table\_functions\_use\_nulls
</div>

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

[mysql](/ja/reference/functions/table-functions/mysql)、[postgresql](/ja/reference/functions/table-functions/postgresql)、および [odbc](/ja/reference/functions/table-functions/odbc) のテーブル関数で Nullable カラムをどのように扱うかを定義します。

設定可能な値:

* 0 — テーブル関数は Nullable カラムを明示的に使用します。
* 1 — テーブル関数は Nullable カラムを暗黙的に使用します。

**使用方法**

この設定を `0` にすると、テーブル関数は Nullable カラムを作成せず、NULL の代わりにデフォルト値を挿入します。これは Array 内の NULL 値にも適用されます。

<div id="external_table_strict_query">
  ## external\_table\_strict\_query
</div>

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

true に設定されている場合、外部テーブルへのクエリで式をローカルフィルタに変換することは禁止されます。

<div id="extract_key_value_pairs_max_pairs_per_row">
  ## extract\_key\_value\_pairs\_max\_pairs\_per\_row
</div>

**別名**: `extract_kvp_max_pairs_per_row`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "`extractKeyValuePairs` 関数で生成できるペアの最大数。メモリの過剰消費を防ぐための保護措置として使用されます。"}]}]} />

`extractKeyValuePairs` 関数で生成できるペアの最大数。メモリの過剰消費を防ぐための保護措置として使用されます。

<div id="extremes">
  ## extremes
</div>

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

極値 (クエリ結果のカラムにおける最小値および最大値) を計算するかどうかを指定します。0 または 1 を指定できます。デフォルトは 0 (無効) です。
詳細については、「Extreme values」セクションを参照してください。

<div id="fallback_to_stale_replicas_for_distributed_queries">
  ## fallback\_to\_stale\_replicas\_for\_distributed\_queries
</div>

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

更新済みのデータが利用できない場合に、古いレプリカへクエリを強制的に送ります。[レプリケーション](/ja/reference/engines/table-engines/mergetree-family/replication) を参照してください。

ClickHouse は、テーブルの古いレプリカの中から最も適切なものを選択します。

レプリケートテーブルを参照する分散テーブルに対して `SELECT` を実行する際に使用されます。

デフォルト値は 1 (enabled) です。

<div id="filesystem_cache_allow_background_download">
  ## filesystem\_cache\_allow\_background\_download
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "クエリごとにファイルシステムキャッシュでのバックグラウンドダウンロードを制御する新しい設定。"}]}]} />

ファイルシステムキャッシュで、リモートストレージから読み取ったデータのバックグラウンドダウンロードをキューに入れられるようにします。無効にすると、現在のクエリ/セッションではダウンロードはフォアグラウンドで実行されます。

<div id="filesystem_cache_boundary_alignment">
  ## filesystem\_cache\_boundary\_alignment
</div>

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

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

ファイルシステムキャッシュの境界アラインメントです。この設定は、ディスク以外からの読み取りにのみ適用されます (たとえば、remote table engines / table function の cache には適用されますが、MergeTree テーブルのストレージ構成には適用されません) 。値が 0 の場合は、アラインメントは行われません。

<div id="filesystem_cache_enable_background_download_during_fetch">
  ## filesystem\_cache\_enable\_background\_download\_during\_fetch
</div>

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

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

ClickHouse Cloud でのみ有効です。ファイルシステムキャッシュで領域を確保するために cache をロックするまでの待機時間

<div id="filesystem_cache_enable_background_download_for_metadata_files_in_packed_storage">
  ## filesystem\_cache\_enable\_background\_download\_for\_metadata\_files\_in\_packed\_storage
</div>

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

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

ClickHouse Cloud でのみ有効です。ファイルシステムキャッシュで領域を予約する際に、キャッシュのロック取得を待機する時間

<div id="filesystem_cache_max_download_size">
  ## filesystem\_cache\_max\_download\_size
</div>

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

1回のクエリでダウンロードできるリモートファイルシステムキャッシュの最大サイズ

<div id="filesystem_cache_name">
  ## filesystem\_cache\_name
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": ""},{"label": "ステートレスなテーブルエンジンまたはデータレイクで使用するファイルシステムキャッシュの名前"}]}]} />

ステートレスなテーブルエンジンまたはデータレイクで使用するファイルシステムキャッシュの名前

<div id="filesystem_cache_prefer_bigger_buffer_size">
  ## filesystem\_cache\_prefer\_bigger\_buffer\_size
</div>

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

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

ファイルシステムキャッシュが有効な場合、cache のパフォーマンスを低下させる小さなファイルセグメントの書き込みを避けるため、より大きなバッファサイズを優先します。一方、この設定を有効にすると、メモリ使用量が増加する可能性があります。

<div id="filesystem_cache_reserve_space_wait_lock_timeout_milliseconds">
  ## filesystem\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000"},{"label": "ファイルシステムキャッシュで領域を予約する際にキャッシュをロックするまでの待機時間"}]}]} />

ファイルシステムキャッシュで領域を予約する際にキャッシュをロックするまでの待機時間

<div id="filesystem_cache_segments_batch_size">
  ## filesystem\_cache\_segments\_batch\_size
</div>

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

読み取りバッファが cache に要求できる、1 回のバッチに含まれるファイルセグメント数の上限です。値が小さすぎると cache への要求が過剰になり、大きすぎると cache からのエビクションが遅くなる可能性があります

<div id="filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit">
  ## filesystem\_cache\_skip\_download\_if\_exceeds\_per\_query\_cache\_write\_limit
</div>

**別名**: `skip_download_if_exceeds_query_cache`

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "設定 skip_download_if_exceeds_query_cache_limit の名称変更"}]}]} />

クエリ cache のサイズを超える場合、リモートファイルシステムからのダウンロードをスキップします

<div id="filesystem_prefetch_max_memory_usage">
  ## filesystem\_prefetch\_max\_memory\_usage
</div>

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

prefetch の最大メモリ使用量です。

Cloud でのデフォルト値: 総メモリの 10%。

<div id="filesystem_prefetch_step_bytes">
  ## filesystem\_prefetch\_step\_bytes
</div>

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

バイト単位の prefetch step です。ゼロは `auto` を意味します。おおよそ最適な prefetch step が自動的に推定されますが、必ずしも 100% 最適になるとは限りません。実際の値は、設定 filesystem\_prefetch\_min\_bytes\_for\_single\_read\_task によって異なる場合があります。

<div id="filesystem_prefetch_step_marks">
  ## filesystem\_prefetch\_step\_marks
</div>

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

mark 単位の先読みステップです。0 は `auto` を意味し、ほぼ最適な先読みステップが自動的に推定されますが、必ずしも 100% 最適になるとは限りません。実際の値は、設定 filesystem\_prefetch\_min\_bytes\_for\_single\_read\_task によって異なる場合があります

<div id="filesystem_prefetches_limit">
  ## filesystem\_prefetches\_limit
</div>

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

prefetch の最大数です。0 は無制限を意味します。prefetch の数を制限したい場合は、設定 `filesystem_prefetches_max_memory_usage` を使用することを推奨します

<div id="final">
  ## final
</div>

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

クエリ内のすべてのテーブル、および [FINAL](/ja/reference/statements/select/from#final-modifier) を適用できるテーブル (JOIN されたテーブル、サブクエリ内のテーブル、分散テーブルを含む) に対して、[FINAL](/ja/reference/statements/select/from#final-modifier) 修飾子を自動的に適用します。

設定可能な値:

* 0 - 無効
* 1 - 有効

例:

```sql theme={null}
CREATE TABLE test
(
    key Int64,
    some String
)
ENGINE = ReplacingMergeTree
ORDER BY key;

INSERT INTO test FORMAT Values (1, 'first');
INSERT INTO test FORMAT Values (1, 'second');

SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
┌─key─┬─some──┐
│   1 │ first │
└─────┴───────┘

SELECT * FROM test SETTINGS final = 1;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘

SET final = 1;
SELECT * FROM test;
┌─key─┬─some───┐
│   1 │ second │
└─────┴────────┘
```

<div id="finalize_projection_parts_synchronously">
  ## finalize\_projection\_parts\_synchronously
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "ピークメモリ使用量を削減するために、INSERT 中に projection parts を同期的にファイナライズする新しい設定。"}]}]} />

有効にすると、projection parts は INSERT 中に同期的にファイナライズされ、S3 アップロードの並列度は下がるものの、ピークメモリ使用量を削減できます。デフォルトでは、各 projection の出力ストリームは、パーツ全体 (すべての projections を含む) がファイナライズされるまで保持されます。これにより S3 アップロードを並行して進められますが、ピークメモリ使用量は projections の数に比例して増加します。この設定が影響するのは INSERT パスのみです。merge と mutation では、projections はすでに同期的にファイナライズされます。

<div id="flatten_nested">
  ## flatten\_nested
</div>

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

[nested](/ja/reference/data-types/nested-data-structures) カラムのデータフォーマットを設定します。

設定可能な値:

* 1 — Nested カラムは個別の配列にフラット化されます。
* 0 — Nested カラムはタプルの単一の配列のままになります。

**使用方法**

この設定を `0` にすると、任意のネストレベルを使用できます。

**例**

クエリ:

```sql theme={null}
SET flatten_nested = 1;
CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

結果:

```text theme={null}
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n.a` Array(UInt32),
    `n.b` Array(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

クエリ:

```sql theme={null}
SET flatten_nested = 0;

CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();

SHOW CREATE TABLE t_nest;
```

結果:

```text theme={null}
┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
    `n` Nested(a UInt32, b UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="force_aggregate_partitions_independently">
  ## force\_aggregate\_partitions\_independently
</div>

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

適用可能であってもヒューリスティクスによって使用しないと判断された場合に、この最適化を強制的に使用します

<div id="force_aggregation_in_order">
  ## force\_aggregation\_in\_order
</div>

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

この設定は、分散クエリをサポートするためにサーバー内部で使用されます。通常の動作に支障をきたすため、手動で変更しないでください。 (分散集約時に、リモートノードで順序どおりの集約の使用を強制します。)

<div id="force_data_skipping_indices">
  ## force\_data\_skipping\_indices
</div>

指定されたデータスキッピングインデックスが使用されていない場合、クエリの実行を無効にします。

次の例を見てみましょう。

```sql theme={null}
CREATE TABLE data
(
    key Int,
    d1 Int,
    d1_null Nullable(Int),
    INDEX d1_idx d1 TYPE minmax GRANULARITY 1,
    INDEX d1_null_idx assumeNotNull(d1_null) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;

SELECT * FROM data_01515;
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices=''; -- クエリはCANNOT_PARSE_TEXTエラーを生成します。
SELECT * FROM data_01515 SETTINGS force_data_skipping_indices='d1_idx'; -- クエリはINDEX_NOT_USEDエラーを生成します。
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='d1_idx'; -- OK。
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`'; -- OK（フル機能パーサーの使用例）。
SELECT * FROM data_01515 WHERE d1 = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- d1_null_idxが使用されていないため、クエリはINDEX_NOT_USEDエラーを生成します。
SELECT * FROM data_01515 WHERE d1 = 0 AND assumeNotNull(d1_null) = 0 SETTINGS force_data_skipping_indices='`d1_idx`, d1_null_idx'; -- OK。
```

<div id="force_grouping_standard_compatibility">
  ## force\_grouping\_standard\_compatibility
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.9"},{"label": "1"},{"label": "GROUPING関数の出力をSQL標準および他のDBMSと同じにする"}]}]} />

GROUPING関数が、引数が集約キーとして使われていない場合に 1 を返すようにします

<div id="force_index_by_date">
  ## force\_index\_by\_date
</div>

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

日付による索引を使用できない場合、クエリを実行できないようにします。

MergeTree family のテーブルで機能します。

`force_index_by_date=1` の場合、ClickHouse はクエリに、データ範囲の絞り込みに使用できる日付キー条件があるかどうかを確認します。適切な条件がない場合は、例外をスローします。ただし、その条件によって読み取るデータ量が実際に減るかどうかまでは確認しません。たとえば、条件 `Date != ' 2000-01-01 '` は、テーブル内のすべてのデータに一致する場合でも有効です (つまり、クエリの実行には全件スキャンが必要です) 。MergeTree テーブルにおけるデータ範囲の詳細については、[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) を参照してください。

<div id="force_optimize_projection">
  ## force\_optimize\_projection
</div>

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

プロジェクションの最適化が有効な場合 ([optimize\_use\_projections](#optimize_use_projections) 設定を参照) 、`SELECT` クエリで [プロジェクション](/ja/reference/engines/table-engines/mergetree-family/mergetree#projections) を必ず使用するかどうかを有効または無効にします。

設定可能な値:

* 0 — プロジェクションの最適化は必須ではありません。
* 1 — プロジェクションの最適化は必須です。

<div id="force_optimize_projection_name">
  ## force\_optimize\_projection\_name
</div>

空でない文字列が設定されている場合、このプロジェクションがクエリ内で少なくとも1回使用されていることを確認します。

設定可能な値:

* string: クエリで使用されるプロジェクション名

<div id="force_optimize_skip_unused_shards">
  ## force\_optimize\_skip\_unused\_shards
</div>

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

[optimize\_skip\_unused\_shards](#optimize_skip_unused_shards) が有効で、かつ未使用の分片をスキップできない場合に、クエリ実行を許可するかどうかを制御します。スキップできず、この設定が有効な場合は、例外がスローされます。

設定可能な値:

* 0 — 無効。ClickHouse は例外をスローしません。
* 1 — 有効。テーブルに分片キーがある場合にのみ、クエリ実行が無効になります。
* 2 — 有効。テーブルに分片キーが定義されているかどうかにかかわらず、クエリ実行が無効になります。

<div id="force_optimize_skip_unused_shards_nesting">
  ## force\_optimize\_skip\_unused\_shards\_nesting
</div>

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

分散クエリのネストレベルに応じて [`force_optimize_skip_unused_shards`](#force_optimize_skip_unused_shards) の適用範囲を制御します (この設定を有効にするには、[`force_optimize_skip_unused_shards`](#force_optimize_skip_unused_shards) も有効である必要があります) 。これは、ある `Distributed` テーブルが別の `Distributed` テーブルを参照する場合に該当します。

設定可能な値:

* 0 - 無効。`force_optimize_skip_unused_shards` は常に動作します。
* 1 — `force_optimize_skip_unused_shards` を第1レベルでのみ有効にします。
* 2 — `force_optimize_skip_unused_shards` を第2レベルまで有効にします。

<div id="force_primary_key">
  ## force\_primary\_key
</div>

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

主キーによる索引を利用できない場合、クエリの実行を無効にします。

MergeTree family のテーブルで動作します。

`force_primary_key=1` の場合、ClickHouse はクエリに、データ範囲の絞り込みに使用できる主キー条件があるかどうかを確認します。適切な条件がない場合は、例外をスローします。ただし、その条件によって読み取るデータ量が減るかどうかまでは確認しません。MergeTree テーブルにおけるデータ範囲の詳細については、[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) を参照してください。

<div id="force_remove_data_recursively_on_drop">
  ## force\_remove\_data\_recursively\_on\_drop
</div>

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

DROP クエリ実行時にデータを再帰的に削除します。これにより 'Directory not empty' エラーは回避できますが、デタッチされたデータも気付かないうちに削除される可能性があります

<div id="formatdatetime_e_with_space_padding">
  ## formatdatetime\_e\_with\_space\_padding
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "MySQL DATE_FORMAT/STR_TO_DATE との互換性が向上"}]}]} />

関数 `formatDateTime` のフォーマッタ '%e' は、1 桁の日を先頭にスペースを付けて出力します。たとえば、'2' ではなく ' 2' と出力されます。

<div id="formatdatetime_f_prints_scale_number_of_digits">
  ## formatdatetime\_f\_prints\_scale\_number\_of\_digits
</div>

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

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

関数 'formatDateTime' のフォーマッタ '%f' は、固定の 6 桁ではなく、DateTime64 の scale で指定された桁数だけを出力します。

<div id="formatdatetime_f_prints_single_zero">
  ## formatdatetime\_f\_prints\_single\_zero
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "0"},{"label": "MySQL DATE_FORMAT()/STR_TO_DATE() との互換性が向上"}]}]} />

関数 'formatDateTime' のフォーマッタ '%f' は、フォーマット対象の値に小数秒がない場合、6 個のゼロではなく 1 個のゼロを出力します。

<div id="formatdatetime_format_without_leading_zeros">
  ## formatdatetime\_format\_without\_leading\_zeros
</div>

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

関数 `formatDateTime` のフォーマッタ `%c`、`%l`、`%k` は、月と時を先頭のゼロなしで出力します。

<div id="formatdatetime_parsedatetime_m_is_month_name">
  ## formatdatetime\_parsedatetime\_m\_is\_month\_name
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "1"},{"label": "MySQL DATE_FORMAT/STR_TO_DATE との互換性を向上"}]}]} />

関数 `formatDateTime` および `parseDateTime` におけるフォーマッタ `%M` は、分ではなく月名を出力・解析します。

<div id="fsync_metadata">
  ## fsync\_metadata
</div>

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

`.sql` ファイルの書き込み時に [fsync](http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html) を有効または無効にします。デフォルトでは有効です。

server に数百万もの小さな table があり、それらが絶えず作成・削除されている場合は、これを無効にするのが適切です。

<div id="function_date_trunc_return_type_behavior">
  ## function\_date\_trunc\_return\_type\_behavior
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "dateTrunc 関数の従来の動作を維持するための新しい設定を追加"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "負の値に対して正しい結果を得るため、`DateTime64/Date32` 引数に対する dateTrunc 関数の結果型を、時間単位にかかわらず `DateTime64/Date32` に変更"}]}]} />

`dateTrunc` 関数の戻り値の型の動作を変更できます。

設定可能な値:

* 0 - 2 番目の引数が `DateTime64/Date32` の場合、戻り値の型は最初の引数の時間単位にかかわらず `DateTime64/Date32` になります。
* 1 - `Date32` の場合、結果は常に `Date` になります。`DateTime64` の場合、時間単位が `second` 以上であれば結果は `DateTime` になります。

<div id="function_implementation">
  ## function\_implementation
</div>

特定のターゲットまたはバリアント向けの関数実装を選択します (実験的) 。空の場合は、すべて有効になります。

<div id="function_json_value_return_type_allow_complex">
  ## function\_json\_value\_return\_type\_allow\_complex
</div>

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

json\_value 関数が複合型 (struct、array、map など) を返すことを許可するかどうかを制御します。

```sql theme={null}
SELECT JSON_VALUE('{"hello":{"world":"!"}}', '$.hello') settings function_json_value_return_type_allow_complex=true

┌─JSON_VALUE('{"hello":{"world":"!"}}', '$.hello')─┐
│ {"world":"!"}                                    │
└──────────────────────────────────────────────────┘

1 row in set. Elapsed: 0.001 sec.
```

設定可能な値:

* true — 許可します。
* false — 許可しません。

<div id="function_json_value_return_type_allow_nullable">
  ## function\_json\_value\_return\_type\_allow\_nullable
</div>

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

JSON\_VALUE 関数で値が存在しない場合に `NULL` を返すことを許可するかどうかを制御します。

```sql theme={null}
SELECT JSON_VALUE('{"hello":"world"}', '$.b') settings function_json_value_return_type_allow_nullable=true;

┌─JSON_VALUE('{"hello":"world"}', '$.b')─┐
│ ᴺᵁᴸᴸ                                   │
└────────────────────────────────────────┘

1 row in set. Elapsed: 0.001 sec.
```

設定可能な値:

* true — 許可します。
* false — 許可しません。

<div id="function_locate_has_mysql_compatible_argument_order">
  ## function\_locate\_has\_mysql\_compatible\_argument\_order
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "MySQL の locate 関数との互換性を向上させます。"}]}]} />

関数 [locate](/ja/reference/functions/regular-functions/string-search-functions#locate) の引数の順序を制御します。

設定可能な値:

* 0 — 関数 `locate` は引数 `(haystack, needle[, start_pos])` を受け付けます。
* 1 — 関数 `locate` は引数 `(needle, haystack, [, start_pos])` を受け付けます (MySQL 互換の動作)

<div id="function_range_max_elements_in_block">
  ## function\_range\_max\_elements\_in\_block
</div>

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

関数 [range](/ja/reference/functions/regular-functions/array-functions#range) が生成するデータ量の安全しきい値を設定します。データの各 block に対してこの関数が生成できる値の最大数を定義します (block 内の各行の配列サイズの合計) 。

設定可能な値:

* 正の整数。

**関連項目**

* [`max_block_size`](#max_block_size)
* [`min_insert_block_size_rows`](#min_insert_block_size_rows)

<div id="function_sleep_max_microseconds_per_block">
  ## function\_sleep\_max\_microseconds\_per\_block
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.7"},{"label": "3000000"},{"label": "以前のバージョンでは、最大 3 秒のスリープ時間は `sleep` にのみ適用され、`sleepEachRow` 関数には適用されていませんでした。新しいバージョンでは、この設定が導入されました。以前のバージョンとの互換性を有効にすると、この制限は完全に無効になります。"}]}]} />

関数 `sleep` が各 block ごとにスリープできる最大マイクロ秒数です。これを超える値を指定して呼び出すと、例外がスローされます。これは安全しきい値です。

<div id="function_visible_width_behavior">
  ## function\_visible\_width\_behavior
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "`visibleWidth` のデフォルトの動作を、より正確なものに変更しました"}]}]} />

`visibleWidth` の動作バージョンです。0 - コードポイント数のみをカウントします。1 - ゼロ幅文字および結合文字を正しくカウントし、全角文字は 2 文字分としてカウントし、タブ幅を推定し、DEL 文字をカウントします。

<div id="functions_h3_default_if_invalid">
  ## functions\_h3\_default\_if\_invalid
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "h3 関数で無効な入力を許容するための、従来の動作に関する新しい設定"}]}]} />

false の場合、h3CellAreaM2 などの h3 関数は、入力が無効だと例外を発生させます。true の場合は、0 またはデフォルト値を返します。

<div id="geo_distance_returns_float64_on_float64_arguments">
  ## geo\_distance\_returns\_float64\_on\_float64\_arguments
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "デフォルトの精度を向上。"}]}]} />

`geoDistance`、`greatCircleDistance`、`greatCircleAngle` 関数の4つの引数がすべて Float64 の場合、Float64 を返し、内部計算には倍精度を使用します。以前の ClickHouse バージョンでは、これらの関数は常に Float32 を返していました。

<div id="geotoh3_argument_order">
  ## geotoh3\_argument\_order
</div>

<SettingsInfoBlock type="GeoToH3ArgumentOrder" default_value="lat_lon" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "lat_lon"},{"label": "lon と lat の引数順を設定する、従来の動作向けの新しい設定"}]}]} />

関数 `geoToH3` は、`lon_lat` に設定すると (lon, lat) を受け取り、`lat_lon` に設定すると (lat, lon) を受け取ります。

<div id="glob_expansion_max_elements">
  ## glob\_expansion\_max\_elements
</div>

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

許可されるアドレスの最大数 (外部ストレージ、テーブル関数など) 。

<div id="grace_hash_join_initial_buckets">
  ## grace\_hash\_join\_initial\_buckets
</div>

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

Grace Hash Join の初期バケット数

<div id="grace_hash_join_max_buckets">
  ## grace\_hash\_join\_max\_buckets
</div>

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

Grace Hash Join で使用するバケット数の上限

<div id="group_by_overflow_mode">
  ## group\_by\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowModeGroupBy" default_value="throw" />

集約における一意なキーの数が制限を超えた場合の動作を設定します。

* `throw`: 例外をスローする
* `break`: クエリの実行を停止し、部分的な結果を返す
* `any`: 集合に入ったキーについては集約を継続しますが、新しいキーは集合に追加しません。

`any` 値を使用すると、GROUP BY の近似結果を得られます。この近似の精度は、
データの統計的な性質に依存します。

<div id="group_by_two_level_threshold">
  ## group\_by\_two\_level\_threshold
</div>

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

キー数がこの値に達すると、二段階集約を開始します。0 の場合、しきい値は設定されません。

<div id="group_by_two_level_threshold_bytes">
  ## group\_by\_two\_level\_threshold\_bytes
</div>

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

集約状態のサイズが何バイトに達すると二段階集約の使用を開始するかを指定します。0 は、しきい値が設定されていないことを意味します。少なくともいずれか 1 つのしきい値がトリガーされると、二段階集約が使用されます。

<div id="group_by_use_nulls">
  ## group\_by\_use\_nulls
</div>

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

[GROUP BY clause](/ja/reference/statements/select/group-by) が集約キーの型をどのように扱うかを変更します。
`ROLLUP`、`CUBE`、`GROUPING SETS` 指定子を使用すると、一部の結果行の生成時に使用されない集約キーが生じることがあります。
これらのキーに対応するカラムは、この設定に応じて、該当する行でデフォルト値または `NULL` で埋められます。

設定可能な値:

* 0 — 欠けている値を表すために、集約キーの型のデフォルト値を使用します。
* 1 — ClickHouse は SQL 標準に従って `GROUP BY` を実行します。集約キーの型は [Nullable](/ja/reference/data-types/nullable) に変換されます。対応する集約キーのカラムは、そのキーが使用されなかった行では [NULL](/ja/reference/syntax#null) で埋められます。

関連項目:

* [GROUP BY clause](/ja/reference/statements/select/group-by)

<div id="h3togeo_lon_lat_result_order">
  ## h3togeo\_lon\_lat\_result\_order
</div>

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

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

関数 `h3ToGeo` は、true の場合は (lon, lat) を、そうでない場合は (lat, lon) を返します。

<div id="handshake_timeout_ms">
  ## handshake\_timeout\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="10000" />

ハンドシェイク中にレプリカから Hello パケットを受信するまでのタイムアウト (ミリ秒) 。

<div id="hdfs_create_new_file_on_insert">
  ## hdfs\_create\_new\_file\_on\_insert
</div>

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

HDFS engine テーブルで、insert ごとに新しいファイルを作成するかどうかを切り替えます。有効にすると、insert のたびに、次のようなパターンの名前を持つ新しい HDFS ファイルが作成されます。

initial: `data.Parquet.gz` -> `data.1.Parquet.gz` -> `data.2.Parquet.gz`, etc.

設定可能な値:

* 0 — `INSERT` クエリは新しいデータをファイルの末尾に追記します。
* 1 — `INSERT` クエリは新しいファイルを作成します。

<div id="hdfs_ignore_file_doesnt_exist">
  ## hdfs\_ignore\_file\_doesnt\_exist
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "HDFS table engine で、要求されたファイルが存在しない場合、例外をスローする代わりに 0 行を返せるようにします"}]}]} />

特定のキーの読み取り時に、ファイルが存在しない場合はその不在を無視します。

設定可能な値:

* 1 — `SELECT` は空の結果を返します。
* 0 — `SELECT` は例外をスローします。

<div id="hdfs_replication">
  ## hdfs\_replication
</div>

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

実際のレプリカ数は、HDFS ファイルの作成時に指定できます。

<div id="hdfs_skip_empty_files">
  ## hdfs\_skip\_empty\_files
</div>

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

[HDFS](/ja/reference/engines/table-engines/integrations/hdfs) エンジンのテーブルで、空のファイルのスキップを有効または無効にします。

設定可能な値:

* 0 — 空のファイルが指定されたフォーマットと互換性がない場合、`SELECT` は例外をスローします。
* 1 — 空のファイルに対して `SELECT` は空の結果を返します。

<div id="hdfs_throw_on_zero_files_match">
  ## hdfs\_throw\_on\_zero\_files\_match
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "空のクエリ結果を返す代わりに、ListObjects リクエストが HDFS engine でどのファイルにも一致しない場合にエラーをスローできるようにします"}]}]} />

glob 展開ルールに従って一致するファイルが 0 件の場合に、エラーをスローします。

設定可能な値:

* 1 — `SELECT` は例外をスローします。
* 0 — `SELECT` は空の結果を返します。

<div id="hdfs_truncate_on_insert">
  ## hdfs\_truncate\_on\_insert
</div>

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

HDFS engine テーブルで、insert の前に切り詰めを行うかどうかを有効または無効にします。無効にすると、HDFS 内にファイルがすでに存在する状態で insert を試みた場合、例外がスローされます。

設定可能な値:

* 0 — `INSERT` クエリは新しいデータをファイルの末尾に追記します。
* 1 — `INSERT` クエリはファイルの既存の内容を新しいデータで置き換えます。

<div id="hedged_connection_timeout_ms">
  ## hedged\_connection\_timeout\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.4"},{"label": "50"},{"label": "従来の接続タイムアウトに合わせるため、ヘッジドリクエストでは 100 ms ではなく 50 ms 後に新しい接続を開始"}]}]} />

ヘッジドリクエストでレプリカへの接続を確立する際の接続タイムアウト

<div id="highlight_max_matches_per_row">
  ## highlight\_max\_matches\_per\_row
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000"},{"label": "過剰なメモリ使用を防ぐため、各行のハイライト一致数を制限する新しい設定。"}]}]} />

[highlight](/ja/reference/functions/regular-functions/string-search-functions#highlight) 関数で、各行におけるハイライト一致数の最大値を設定します。大きなテキスト内で反復の多いパターンをハイライトする際に、過剰なメモリ使用を防ぐために使用します。

設定可能な値:

* 正の整数。

<div id="hnsw_candidate_list_size_for_search">
  ## hnsw\_candidate\_list\_size\_for\_search
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "256"},{"label": "新しい設定。以前は、この値は CREATE INDEX で任意に指定でき、デフォルト値は 64 でした。"}]}]} />

ベクトル類似度索引の検索時における動的な候補リストのサイズです。`ef_search` とも呼ばれます。

<div id="hsts_max_age">
  ## hsts\_max\_age
</div>

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

HSTS の有効期限です。0 は HSTS を無効にすることを意味します。

<div id="http_connection_timeout">
  ## http\_connection\_timeout
</div>

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

HTTP 接続のタイムアウト時間 (秒) 。

設定可能な値:

* 任意の正の整数。
* 0 - 無効 (無期限) 。

<div id="http_headers_progress_interval_ms">
  ## http\_headers\_progress\_interval\_ms
</div>

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

HTTP headers `X-ClickHouse-Progress` は、指定した各間隔より短い頻度では送信されません。

<div id="http_headers_read_timeout">
  ## http\_headers\_read\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "30"},{"label": "HTTPリクエストヘッダーの読み取りにかかる合計時間を制限し、slowloris攻撃を防ぐための新しい設定。"}]}]} />

すべてのHTTPリクエストヘッダーを読み取るための最大時間 (秒) です。これはヘッダー全体のパース処理に対する合計の制限時間であり、読み取りごとのタイムアウトではありません。クライアントがヘッダーデータを少しずつ送信して接続を開いたままにする、slowloris型の攻撃を防ぎます。

<div id="http_make_head_request">
  ## http\_make\_head\_request
</div>

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

`http_make_head_request` 設定では、HTTP からデータを読み取る際に `HEAD` リクエストを実行し、サイズなど、読み取る対象のファイルに関する情報を取得できます。既定で有効になっているため、サーバーが `HEAD` リクエストをサポートしていない場合は、この設定を無効にすることを検討してください。

<div id="http_max_field_name_size">
  ## http\_max\_field\_name\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "4096"},{"label": "HTTP接続における認証前のメモリ使用量を抑えるため、デフォルト値を引き下げました。"}]}]} />

HTTPヘッダー内のフィールド名の最大長

<div id="http_max_field_value_size">
  ## http\_max\_field\_value\_size
</div>

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

HTTPヘッダー内のフィールド値の最大長

<div id="http_max_fields">
  ## http\_max\_fields
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000"},{"label": "HTTP接続による認証前のメモリ使用量を抑えるため、デフォルト値を引き下げました。"}]}]} />

HTTPヘッダー内のフィールドの最大数

<div id="http_max_multipart_form_data_size">
  ## http\_max\_multipart\_form\_data\_size
</div>

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

multipart/form-data コンテンツのサイズ上限です。この設定は URL パラメータからは解析できないため、ユーザープロファイルで設定する必要があります。なお、クエリの実行が始まる前に、コンテンツはメモリ上で解析され、外部テーブルが作成されます。また、この段階に影響する制限はこれだけです (max memory usage と max execution time の制限は、HTTP フォームデータの読み取り中には効きません) 。

<div id="http_max_request_header_size">
  ## http\_max\_request\_header\_size
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10485760"},{"label": "認証前のHTTPリクエストヘッダーの合計サイズを制限するための新しい設定。"}]}]} />

すべてのHTTPリクエストヘッダーの最大合計サイズ (名前と値の合計) をバイト単位で指定します。

<div id="http_max_request_param_data_size">
  ## http\_max\_request\_param\_data\_size
</div>

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

定義済みのHTTPリクエストでクエリパラメータとして使用されるリクエストデータのサイズ上限。

<div id="http_max_tries">
  ## http\_max\_tries
</div>

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

HTTP 経由で読み取る際の最大試行回数。

<div id="http_max_uri_size">
  ## http\_max\_uri\_size
</div>

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

HTTP request の URI の最大長を設定します。

設定可能な値:

* 正の整数。

<div id="http_native_compression_disable_checksumming_on_decompress">
  ## http\_native\_compression\_disable\_checksumming\_on\_decompress
</div>

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

クライアントからの HTTP POST データの伸長時に、チェックサムの検証を有効または無効にします。ClickHouse のネイティブ圧縮フォーマットでのみ使用されます (`gzip` や `deflate` では使用されません) 。

詳細については、[HTTP インターフェイスの説明](/ja/concepts/features/interfaces/http)を参照してください。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="http_receive_timeout">
  ## http\_receive\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.6"},{"label": "30"},{"label": "http_send_timeout を参照してください。"}]}]} />

HTTP の受信タイムアウト (秒) 。

設定可能な値:

* 任意の正の整数。
* 0 - 無効 (無期限) 。

<div id="http_response_buffer_size">
  ## http\_response\_buffer\_size
</div>

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

クライアントに HTTP レスポンスを送信する前、または (http\_wait\_end\_of\_query が有効な場合に) ディスクにフラッシュする前に、サーバーのメモリにバッファするバイト数。

<div id="http_response_headers">
  ## http\_response\_headers
</div>

<SettingsInfoBlock type="Map" default_value="{}" />

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

クエリが正常に成功した結果を含むレスポンスについて、サーバーが返す HTTP ヘッダーを追加または上書きできます。
これは HTTP インターフェイスにのみ影響します。

ヘッダーがデフォルトですでに設定されている場合は、指定した値で上書きされます。
ヘッダーがデフォルトで設定されていない場合は、ヘッダーの一覧に追加されます。
サーバーによってデフォルトで設定され、この設定で上書きされていないヘッダーは、そのまま維持されます。

この設定では、ヘッダーに定数値を設定できます。現在のところ、動的に計算された値をヘッダーに設定する方法はありません。

名前にも値にも ASCII 制御文字を含めることはできません。

ユーザーが設定を変更でき、同時に返されたヘッダーに基づいて判断も行う UI アプリケーションを実装する場合は、この設定を readonly に制限することを推奨します。

例: `SET http_response_headers = '{"Content-Type": "image/png"}'`

<div id="http_retry_initial_backoff_ms">
  ## http\_retry\_initial\_backoff\_ms
</div>

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

http 経由の読み取りを再試行する際の backoff の最小値 (ミリ秒)

<div id="http_retry_max_backoff_ms">
  ## http\_retry\_max\_backoff\_ms
</div>

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

http 経由の読み取りを再試行する際の backoff の最大時間 (ミリ秒)

<div id="http_send_timeout">
  ## http\_send\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="30" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.6"},{"label": "30"},{"label": "3 分はかなり長すぎるように思えます。これはアップロード操作全体ではなく、単一のネットワーク書き込み呼び出しに対するタイムアウトである点に注意してください。"}]}]} />

HTTP の送信タイムアウト (秒単位) 。

設定可能な値:

* 任意の正の整数。
* 0 - 無効 (タイムアウトなし) 。

<Note>
  これはデフォルトプロファイルにのみ適用されます。変更を有効にするにはサーバーの再起動が必要です。
</Note>

<div id="http_skip_not_found_url_for_globs">
  ## http\_skip\_not\_found\_url\_for\_globs
</div>

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

HTTP\_NOT\_FOUND エラーが発生した glob の URL をスキップします

<div id="http_wait_end_of_query">
  ## http\_wait\_end\_of\_query
</div>

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

サーバー側で HTTP レスポンスのバッファリングを有効にします。

<div id="http_write_exception_in_output_format">
  ## http\_write\_exception\_in\_output\_format
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "フォーマット間の一貫性を保つために変更"}]}, {"id": "row-2","items": [{"label": "23.9"},{"label": "1"},{"label": "HTTP streaming で例外発生時に有効な JSON/XML を出力。"}]}]} />

有効な出力を生成できるよう、例外を出力フォーマットに従って書き出します。JSON および XML フォーマットで動作します。

<div id="http_zlib_compression_level">
  ## http\_zlib\_compression\_level
</div>

<SettingsInfoBlock type="Int64" default_value="3" />

[enable\_http\_compression = 1](#enable_http_compression) の場合、HTTPリクエストに対するレスポンスのデータ圧縮レベルを設定します。

設定可能な値: 1 から 9 までの数値。

<div id="iceberg_compaction_data_cleanup">
  ## iceberg\_compaction\_data\_cleanup
</div>

<SettingsInfoBlock type="Seconds" default_value="10800" />

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

この時間を過ぎると、データは削除されます。

<div id="iceberg_compaction_delay_bias">
  ## iceberg\_compaction\_delay\_bias
</div>

<SettingsInfoBlock type="Seconds" default_value="10800" />

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

2 回のバックグラウンド compaction 操作の間に必要な最小遅延時間。

<div id="iceberg_data_file_size_lower_threshold_compaction">
  ## iceberg\_data\_file\_size\_lower\_threshold\_compaction
</div>

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

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

Iceberg で compaction の対象となるデータファイルのしきい値。

<div id="iceberg_data_file_size_upper_threshold_compaction">
  ## iceberg\_data\_file\_size\_upper\_threshold\_compaction
</div>

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

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

Iceberg における compaction のデータファイルのしきい値。

<div id="iceberg_delete_data_on_drop">
  ## iceberg\_delete\_data\_on\_drop
</div>

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

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

drop 時にすべての Iceberg ファイルを削除するかどうか。

<div id="iceberg_expire_default_max_ref_age_ms">
  ## iceberg\_expire\_default\_max\_ref\_age\_ms
</div>

<SettingsInfoBlock type="Int64" default_value="9223372036854775807" />

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

Iceberg テーブルのプロパティ `history.expire.max-ref-age-ms` が存在しない場合に、`expire_snapshots` で使用されるデフォルト値。

<div id="iceberg_expire_default_max_snapshot_age_ms">
  ## iceberg\_expire\_default\_max\_snapshot\_age\_ms
</div>

<SettingsInfoBlock type="Int64" default_value="432000000" />

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

このプロパティが存在しない場合に `expire_snapshots` が使用する、Iceberg テーブルのプロパティ `history.expire.max-snapshot-age-ms` のデフォルト値です。

<div id="iceberg_expire_default_min_snapshots_to_keep">
  ## iceberg\_expire\_default\_min\_snapshots\_to\_keep
</div>

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

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

このプロパティがない場合に `expire_snapshots` で使用される、Iceberg テーブルのプロパティ `history.expire.min-snapshots-to-keep` のデフォルト値です。

<div id="iceberg_insert_max_bytes_in_data_file">
  ## iceberg\_insert\_max\_bytes\_in\_data\_file
</div>

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

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

INSERT 操作時の Iceberg Parquet データファイルの最大バイト数。

<div id="iceberg_insert_max_partitions">
  ## iceberg\_insert\_max\_partitions
</div>

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

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

Iceberg テーブルエンジンで 1 回の挿入操作あたりに許可されるパーティション数の最大値。

<div id="iceberg_insert_max_rows_in_data_file">
  ## iceberg\_insert\_max\_rows\_in\_data\_file
</div>

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

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

INSERT 時の Iceberg Parquet データファイル 1 つあたりの最大行数。

<div id="iceberg_max_number_datafiles_to_compact">
  ## iceberg\_max\_number\_datafiles\_to\_compact
</div>

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

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

Iceberg における compaction 対象のデータファイル数のしきい値です。

<div id="iceberg_metadata_compression_method">
  ## iceberg\_metadata\_compression\_method
</div>

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

`.metadata.json` ファイルの圧縮方法です。

<div id="iceberg_metadata_log_level">
  ## iceberg\_metadata\_log\_level
</div>

<SettingsInfoBlock type="IcebergMetadataLogLevel" default_value="none" />

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

system.iceberg\_metadata\_log に出力される、Icebergテーブルのメタデータのログレベルを制御します。
通常、この設定はデバッグ目的で変更できます。

設定可能な値:

* none - メタデータログを出力しません。
* metadata - ルートの metadata.json ファイル。
* manifest\_list\_metadata - 上記すべて + snapshot に対応する avro マニフェストリストのメタデータ。
* manifest\_list\_entry - 上記すべて + avro マニフェストリストのエントリ。
* manifest\_file\_metadata - 上記すべて + 走査した avro マニフェストファイルのメタデータ。
* manifest\_file\_entry - 上記すべて + 走査した avro マニフェストファイルのエントリ。

<div id="iceberg_metadata_staleness_ms">
  ## iceberg\_metadata\_staleness\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "READ 操作時にリモートカタログから取得しないよう、キャッシュされたメタデータバージョンを使用できるようにする新しい設定"}]}]} />

0 以外の場合、指定された staleness ウィンドウより新しいキャッシュ済みのメタデータスナップショットがあれば、リモートカタログから Iceberg メタデータを取得しません。0 の場合は、常にリモートカタログから最新のメタデータバージョンを取得します。この設定を 0 以外にすると、読み取り操作のレイテンシを下げる代わりに、古いメタデータを許容することになります。

<div id="iceberg_orphan_files_older_than_seconds">
  ## iceberg\_orphan\_files\_older\_than\_seconds
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "259200"},{"label": "デフォルトの孤立ファイル経過時間しきい値に関する新しい設定"}]}]} />

Iceberg テーブルで孤立ファイルを削除する際の、デフォルトの経過時間しきい値 (秒) です。これより新しいファイルは孤立ファイルと見なされません。`remove_orphan_files()` プロシージャ呼び出しで `older_than` 引数が省略された場合に使用されます。デフォルトは 259200 (3日) です。

<div id="iceberg_snapshot_id">
  ## iceberg\_snapshot\_id
</div>

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

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

特定のスナップショット ID を指定して Iceberg テーブルをクエリします。

<div id="iceberg_timestamp_ms">
  ## iceberg\_timestamp\_ms
</div>

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

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

特定のタイムスタンプ時点で有効だったスナップショットを使用して、Icebergテーブルをクエリします。

<div id="idle_connection_timeout">
  ## idle\_connection\_timeout
</div>

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

指定した秒数が経過したアイドル状態のTCP接続を閉じるまでのタイムアウトです。

設定可能な値:

* 正の整数 (0 の場合は 0 秒後にただちに閉じる) 。

<div id="ignore_cold_parts_seconds">
  ## ignore\_cold\_parts\_seconds
</div>

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

ClickHouse Cloud でのみ有効です。新しいデータパーツは、事前にウォームアップされる ([cache\_populated\_by\_fetch](/ja/reference/settings/merge-tree-settings#cache_populated_by_fetch) を参照) か、ここで指定した秒数が経過するまで、SELECT クエリの対象から除外されます。Replicated-/SharedMergeTree でのみ有効です。

<div id="ignore_data_skipping_indices">
  ## ignore\_data\_skipping\_indices
</div>

クエリで使用される場合は、指定したスキッピング索引を無視します。

次の例を見てみましょう：

```sql theme={null}
CREATE TABLE data
(
    key Int,
    x Int,
    y Int,
    INDEX x_idx x TYPE minmax GRANULARITY 1,
    INDEX y_idx y TYPE minmax GRANULARITY 1,
    INDEX xy_idx (x,y) TYPE minmax GRANULARITY 1
)
Engine=MergeTree()
ORDER BY key;

INSERT INTO data VALUES (1, 2, 3);

SELECT * FROM data;
SELECT * FROM data SETTINGS ignore_data_skipping_indices=''; -- クエリはCANNOT_PARSE_TEXTエラーを返します。
SELECT * FROM data SETTINGS ignore_data_skipping_indices='x_idx'; -- 正常。
SELECT * FROM data SETTINGS ignore_data_skipping_indices='na_idx'; -- 正常。

SELECT * FROM data WHERE x = 1 AND y = 1 SETTINGS ignore_data_skipping_indices='xy_idx',force_data_skipping_indices='xy_idx' ; -- xy_idxが明示的に無視されているため、クエリはINDEX_NOT_USEDエラーを返します。
SELECT * FROM data WHERE x = 1 AND y = 2 SETTINGS ignore_data_skipping_indices='xy_idx';
```

索引を一切無視しない場合のクエリ:

```sql theme={null}
EXPLAIN indexes = 1 SELECT * FROM data WHERE x = 1 AND y = 2;

Expression ((Projection + Before ORDER BY))
  Filter (WHERE)
    ReadFromMergeTree (default.data)
    Indexes:
      PrimaryKey
        Condition: true
        Parts: 1/1
        Granules: 1/1
      Skip
        Name: x_idx
        Description: minmax GRANULARITY 1
        Parts: 0/1
        Granules: 0/1
      Skip
        Name: y_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0
      Skip
        Name: xy_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0
```

`xy_idx` 索引を無視する場合：

```sql theme={null}
EXPLAIN indexes = 1 SELECT * FROM data WHERE x = 1 AND y = 2 SETTINGS ignore_data_skipping_indices='xy_idx';

Expression ((Projection + Before ORDER BY))
  Filter (WHERE)
    ReadFromMergeTree (default.data)
    Indexes:
      PrimaryKey
        Condition: true
        Parts: 1/1
        Granules: 1/1
      Skip
        Name: x_idx
        Description: minmax GRANULARITY 1
        Parts: 0/1
        Granules: 0/1
      Skip
        Name: y_idx
        Description: minmax GRANULARITY 1
        Parts: 0/0
        Granules: 0/0
```

MergeTree familyのテーブルで使用できます。

<div id="ignore_drop_queries_probability">
  ## ignore\_drop\_queries\_probability
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "0"},{"label": "テスト目的で、指定した確率でサーバーが DROP クエリを無視できるようにします"}]}]} />

有効にすると、サーバーは指定した確率で、すべての DROP table クエリを無視します (Memory および JOIN エンジンでは、DROP を TRUNCATE に置き換えます) 。テスト目的で使用されます

<div id="ignore_format_null_for_explain">
  ## ignore\_format\_null\_for\_explain
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "デフォルトで、EXPLAIN クエリでは FORMAT Null が無視されるようになりました"}]}]} />

有効な場合、`EXPLAIN` クエリでは `FORMAT Null` は無視され、代わりにデフォルトの出力フォーマットが使用されます。
無効な場合、`FORMAT Null` を指定した `EXPLAIN` クエリでは何も出力されません (後方互換性のある動作) 。

<div id="ignore_materialized_views_with_dropped_target_table">
  ## ignore\_materialized\_views\_with\_dropped\_target\_table
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "削除されたターゲットテーブルを持つ materialized view を無視するための新しい設定を追加"}]}]} />

ビューへのプッシュ時には、削除されたターゲットテーブルを持つ MV を無視します

<div id="ignore_on_cluster_for_replicated_access_entities_queries">
  ## ignore\_on\_cluster\_for\_replicated\_access\_entities\_queries
</div>

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

レプリケーションされたアクセスエンティティの管理クエリで、ON CLUSTER 句を無視します。

<div id="ignore_on_cluster_for_replicated_database">
  ## ignore\_on\_cluster\_for\_replicated\_database
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Replicated database に対する DDL クエリで ON CLUSTER 句を無視する新しい設定を追加しました。"}]}]} />

Replicated database に対する DDL クエリでは、常に ON CLUSTER 句を無視します。

<div id="ignore_on_cluster_for_replicated_named_collections_queries">
  ## ignore\_on\_cluster\_for\_replicated\_named\_collections\_queries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "レプリケートされた named collections に対する管理クエリでは、ON CLUSTER 句を無視します。"}]}]} />

レプリケートされた named collections に対する管理クエリでは、ON CLUSTER 句を無視します。

<div id="ignore_on_cluster_for_replicated_udf_queries">
  ## ignore\_on\_cluster\_for\_replicated\_udf\_queries
</div>

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

レプリケートされた UDF の管理クエリでは、ON CLUSTER 句を無視します。

<div id="implicit_select">
  ## implicit\_select
</div>

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

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

先頭に `SELECT` キーワードを書かなくても単純な SELECT クエリを記述できるようにします。これにより、電卓のような使い方がしやすくなり、たとえば `1 + 2` を有効なクエリとして実行できます。

`clickhouse-local` ではデフォルトで有効になっており、明示的に無効化することもできます。

<div id="implicit_table_at_top_level">
  ## implicit\_table\_at\_top\_level
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": ""},{"label": "新しい設定。clickhouse-local で使用されます"}]}]} />

空でない場合、トップレベルで FROM を持たないクエリは、system.one ではなくこのテーブルから読み取ります。

これは、clickhouse-local で入力データを処理する際に使用されます。
この設定はユーザーが明示的に設定することもできますが、そのような用途は想定されていません。

サブクエリはこの設定の影響を受けません (スカラー、FROM、IN のいずれのサブクエリも対象外です) 。
UNION、INTERSECT、EXCEPT の連鎖におけるトップレベルの SELECT は、かっこによるグループ化にかかわらず一律に扱われ、この設定の影響を受けます。
この設定がビューや分散クエリにどのような影響を与えるかは規定されていません。

この設定には、テーブル名 (この場合、テーブルは現在のデータベースから解決されます) または 'database.table' 形式の修飾名を指定できます。
データベース名とテーブル名はどちらもクォートなしでなければならず、使用できるのは単純な識別子のみです。

<div id="implicit_transaction">
  ## implicit\_transaction
</div>

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

有効で、かつまだトランザクション内でない場合、クエリを完全なトランザクション (begin + commit または rollback) で囲みます

<div id="inject_random_order_for_select_without_order_by">
  ## inject\_random\_order\_for\_select\_without\_order\_by
</div>

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

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

有効にすると、ORDER BY 句のない SELECT クエリに 'ORDER BY rand()' を挿入します。
適用されるのはサブクエリの深さ = 0 の場合のみです。サブクエリおよび INSERT INTO ... SELECT には影響しません。
最上位の構文が UNION の場合、'ORDER BY rand()' は各子要素に個別に挿入されます。
テストや開発でのみ有用です (ORDER BY がないと、クエリ結果が非決定的になる原因となります) 。

<div id="insert_allow_materialized_columns">
  ## insert\_allow\_materialized\_columns
</div>

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

この設定を有効にすると、INSERT でマテリアライズドカラムを使用できます。

<div id="insert_deduplicate">
  ## insert\_deduplicate
</div>

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

`INSERT` のブロック重複排除 (Replicated\* テーブル用) を有効または無効にします。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

デフォルトでは、`INSERT` ステートメントによってレプリケートテーブルに挿入されたブロックは重複排除されます ([Data Replication](/ja/reference/engines/table-engines/mergetree-family/replication) を参照) 。
レプリケートテーブルでは、デフォルトで各パーティションにつき直近 100 個のブロックのみが重複排除されます ([replicated\_deduplication\_window](/ja/reference/settings/merge-tree-settings#replicated_deduplication_window)、[replicated\_deduplication\_window\_seconds](/ja/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds) を参照) 。
レプリケーションされないテーブルについては、[non\_replicated\_deduplication\_window](/ja/reference/settings/merge-tree-settings#non_replicated_deduplication_window) を参照してください。

<div id="insert_deduplication_token">
  ## insert\_deduplication\_token
</div>

この設定を使用すると、MergeTree/ReplicatedMergeTree で独自の deduplication の動作を指定できます。
たとえば、各 INSERT ステートメントでこの設定に一意の値を指定することで、
同じデータが deduplication によって排除されるのを防げます。

設定可能な値:

* 任意の文字列

`insert_deduplication_token` は、空でない場合に*のみ* deduplication に使用されます。

レプリケートテーブルでは、デフォルトで各パーティションごとに直近 100 件の insert のみが deduplication の対象になります ([replicated\_deduplication\_window](/ja/reference/settings/merge-tree-settings#replicated_deduplication_window)、[replicated\_deduplication\_window\_seconds](/ja/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds) を参照) 。
非レプリケートテーブルについては、[non\_replicated\_deduplication\_window](/ja/reference/settings/merge-tree-settings#non_replicated_deduplication_window) を参照してください。

<Note>
  `insert_deduplication_token` はパーティション単位で機能します (`insert_deduplication` checksum と同じです) 。複数のパーティションで同じ `insert_deduplication_token` を使用できます。
</Note>

例:

```sql theme={null}
CREATE TABLE test_table
( A Int64 )
ENGINE = MergeTree
ORDER BY A
SETTINGS non_replicated_deduplication_window = 100;

INSERT INTO test_table SETTINGS insert_deduplication_token = 'test' VALUES (1);

-- 次のinsertはinsert_deduplication_tokenが異なるため、重複排除されない
INSERT INTO test_table SETTINGS insert_deduplication_token = 'test1' VALUES (1);

-- 次のinsertはinsert_deduplication_tokenが
-- 以前のいずれかと同じであるため、重複排除される
INSERT INTO test_table SETTINGS insert_deduplication_token = 'test' VALUES (2);

SELECT * FROM test_table

┌─A─┐
│ 1 │
└───┘
┌─A─┐
│ 1 │
└───┘
```

<div id="insert_keeper_fault_injection_probability">
  ## insert\_keeper\_fault\_injection\_probability
</div>

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

insert 時の Keeper リクエストのおおよその失敗確率です。有効な値の範囲は \[0.0f, 1.0f] です

<div id="insert_keeper_fault_injection_seed">
  ## insert\_keeper\_fault\_injection\_seed
</div>

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

0 の場合は乱数シード、それ以外の場合は設定値

<div id="insert_keeper_max_retries">
  ## insert\_keeper\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "20"},{"label": "INSERT 時に Keeper への再接続を有効にし、信頼性を向上"}]}]} />

この設定は、replicated MergeTree への insert 中に ClickHouse Keeper (または ZooKeeper) へのリクエストに対して実行する再試行の最大回数を設定します。再試行の対象となるのは、ネットワークエラー、Keeper セッションのタイムアウト、またはリクエストのタイムアウトによって失敗した Keeper リクエストのみです。

設定可能な値:

* 正の整数。
* 0 — 再試行は無効

Cloud でのデフォルト値: `20`。

Keeper リクエストの再試行は、一定のタイムアウト後に実行されます。このタイムアウトは、次の設定で制御されます: `insert_keeper_retry_initial_backoff_ms`、`insert_keeper_retry_max_backoff_ms`。
最初の再試行は `insert_keeper_retry_initial_backoff_ms` のタイムアウト後に行われます。以降のタイムアウトは、次のように計算されます:

```
timeout = min(insert_keeper_retry_max_backoff_ms, latest_timeout * 2)
```

たとえば、`insert_keeper_retry_initial_backoff_ms=100`、`insert_keeper_retry_max_backoff_ms=10000`、`insert_keeper_max_retries=8` の場合、タイムアウトは `100, 200, 400, 800, 1600, 3200, 6400, 10000` となります。

耐障害性に加え、これらの再試行にはユーザー体験を向上させる目的もあります。たとえば、アップグレードなどの理由で Keeper が再起動した場合でも、INSERT 実行中にエラーを返さずに済みます。

<div id="insert_keeper_retry_initial_backoff_ms">
  ## insert\_keeper\_retry\_initial\_backoff\_ms
</div>

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

INSERT クエリの実行中に失敗した Keeper リクエストを再試行する際の初期タイムアウト (ミリ秒)

設定可能な値:

* 正の整数。
* 0 — タイムアウトなし

<div id="insert_keeper_retry_max_backoff_ms">
  ## insert\_keeper\_retry\_max\_backoff\_ms
</div>

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

INSERT クエリの実行中に失敗した Keeper リクエストを再試行する際の最大タイムアウト (ミリ秒)

設定可能な値:

* 正の整数。
* 0 — 最大タイムアウトは無制限

<div id="insert_null_as_default">
  ## insert\_null\_as\_default
</div>

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

[Nullable](/ja/reference/data-types/nullable) ではないデータ型のカラムに対して、[NULL](/ja/reference/syntax#null) の代わりに [デフォルト値](/ja/reference/statements/create/table#default_values) を挿入するかどうかを有効または無効にします。
カラムの型が Nullable ではなく、この設定が無効な場合、`NULL` を挿入すると例外が発生します。カラムの型が Nullable の場合は、この設定に関係なく、`NULL` 値はそのまま挿入されます。

この設定は、[INSERT ... SELECT](/ja/reference/statements/insert-into#inserting-the-results-of-select) クエリに適用されます。`SELECT` サブクエリは `UNION ALL` 句で連結できる点に注意してください。

設定可能な値:

* 0 — Nullable ではないカラムに `NULL` を挿入すると例外が発生します。
* 1 — `NULL` の代わりにカラムのデフォルト値が挿入されます。

<div id="insert_quorum">
  ## insert\_quorum
</div>

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

<Note>
  この設定は SharedMergeTree には適用されません。詳細は [SharedMergeTree consistency](/ja/products/cloud/features/infrastructure/shared-merge-tree#consistency) を参照してください。
</Note>

クォーラム書き込みを有効にします。

* `insert_quorum < 2` の場合、クォーラム書き込みは無効です。
* `insert_quorum >= 2` の場合、クォーラム書き込みは有効です。
* `insert_quorum = 'auto'` の場合、クォーラム数には過半数 (`number_of_replicas / 2 + 1`) が使用されます。

クォーラム書き込み

`INSERT` は、ClickHouse が `insert_quorum_timeout` の間に `insert_quorum` 個のレプリカへのデータ書き込みを正常に完了できた場合にのみ成功します。何らかの理由で書き込みに成功したレプリカ数が `insert_quorum` に達しない場合、その書き込みは失敗とみなされ、ClickHouse はすでにデータが書き込まれているすべてのレプリカから挿入されたブロックを削除します。

`insert_quorum_parallel` が無効な場合、クォーラム内のすべてのレプリカは整合した状態になります。つまり、以前のすべての `INSERT` クエリによるデータが含まれます (`INSERT` の順序は線形化されます) 。`insert_quorum` を使って書き込まれたデータを読み取る際、`insert_quorum_parallel` が無効であれば、[select\_sequential\_consistency](#select_sequential_consistency) を使用して `SELECT` クエリで逐次整合性を有効にできます。

ClickHouse は次の場合に例外を生成します。

* クエリ実行時点で利用可能なレプリカ数が `insert_quorum` 未満の場合。
* `insert_quorum_parallel` が無効で、前のブロックがまだ `insert_quorum` 個のレプリカに挿入されていない状態でデータを書き込もうとした場合。この状況は、ユーザーが `insert_quorum` を指定した前回の `INSERT` が完了する前に、同じテーブルに対して別の `INSERT` クエリを実行しようとすると発生する可能性があります。

関連項目:

* [insert\_quorum\_timeout](#insert_quorum_timeout)
* [insert\_quorum\_parallel](#insert_quorum_parallel)
* [select\_sequential\_consistency](#select_sequential_consistency)

<div id="insert_quorum_parallel">
  ## insert\_quorum\_parallel
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.1"},{"label": "1"},{"label": "デフォルトで並列クォーラム `INSERT` を使用します。これは逐次クォーラム `INSERT` よりも大幅に扱いやすくなっています"}]}]} />

<Note>
  この設定は SharedMergeTree には適用されません。詳細については [SharedMergeTree consistency](/ja/products/cloud/features/infrastructure/shared-merge-tree#consistency) を参照してください。
</Note>

クォーラム `INSERT` クエリの並列度を有効または無効にします。有効な場合、前のクエリがまだ完了していなくても追加の `INSERT` クエリを送信できます。無効な場合、同じテーブルへの追加の書き込みは拒否されます。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

関連項目:

* [insert\_quorum](#insert_quorum)
* [insert\_quorum\_timeout](#insert_quorum_timeout)
* [select\_sequential\_consistency](#select_sequential_consistency)

<div id="insert_quorum_timeout">
  ## insert\_quorum\_timeout
</div>

<SettingsInfoBlock type="Milliseconds" default_value="600000" />

クォーラムへの書き込みのタイムアウトをミリ秒単位で指定します。タイムアウトまでに書き込みが行われなかった場合、ClickHouse は例外を返し、クライアントは同じブロックを同じレプリカまたは他の任意のレプリカに書き込むために、同じクエリを再実行する必要があります。

関連項目:

* [insert\_quorum](#insert_quorum)
* [insert\_quorum\_parallel](#insert_quorum_parallel)
* [select\_sequential\_consistency](#select_sequential_consistency)

<div id="insert_shard_id">
  ## insert\_shard\_id
</div>

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

`0` 以外の場合、データを同期的に挿入する [Distributed](/ja/reference/engines/table-engines/special/distributed) テーブルの分片を指定します。

`insert_shard_id` の値が正しくない場合、サーバーは例外をスローします。

`requested_cluster` の分片数を取得するには、サーバーの設定を確認するか、次のクエリを使用します。

```sql theme={null}
SELECT uniq(shard_num) FROM system.clusters WHERE cluster = 'requested_cluster';
```

設定可能な値:

* 0 — 無効。
* 対応する [Distributed](/ja/reference/engines/table-engines/special/distributed) テーブルの `1` から `shards_num` までの任意の数値。

**例**

クエリ:

```sql theme={null}
CREATE TABLE x AS system.numbers ENGINE = MergeTree ORDER BY number;
CREATE TABLE x_dist AS x ENGINE = Distributed('test_cluster_two_shards_localhost', currentDatabase(), x);
INSERT INTO x_dist SELECT * FROM numbers(5) SETTINGS insert_shard_id = 1;
SELECT * FROM x_dist ORDER BY number ASC;
```

結果:

```text theme={null}
┌─number─┐
│      0 │
│      0 │
│      1 │
│      1 │
│      2 │
│      2 │
│      3 │
│      3 │
│      4 │
│      4 │
└────────┘
```

<div id="interactive_delay">
  ## interactive\_delay
</div>

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

リクエストの実行がキャンセルされたかどうかを確認し、進行状況を送信する間隔をマイクロ秒単位で指定します。

<div id="intersect_default_mode">
  ## intersect\_default\_mode
</div>

<SettingsInfoBlock type="SetOperationMode" default_value="ALL" />

INTERSECT クエリのデフォルトモードを設定します。設定可能な値: 空文字列、'ALL'、'DISTINCT'。空文字列の場合、モードを指定しないクエリでは例外がスローされます。

<div id="jemalloc_collect_profile_samples_in_trace_log">
  ## jemalloc\_collect\_profile\_samples\_in\_trace\_log
</div>

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

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

jemalloc の割り当ておよび解放のサンプルをトレースログに記録します。

<div id="jemalloc_enable_profiler">
  ## jemalloc\_enable\_profiler
</div>

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

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

このクエリに対して jemalloc プロファイラを有効にします。Jemalloc は割り当てをサンプリングし、サンプリングされた割り当てに対するすべての解放も記録します。
プロファイルは SYSTEM JEMALLOC FLUSH PROFILE を使用してフラッシュでき、割り当ての分析に利用できます。
サンプルは、config の jemalloc\_collect\_global\_profile\_samples\_in\_trace\_log またはクエリ設定の jemalloc\_collect\_profile\_samples\_in\_trace\_log を使用して system.trace\_log に保存することもできます。
[割り当てプロファイリング](/ja/concepts/features/performance/allocation-profiling) を参照してください

<div id="jemalloc_profile_text_collapsed_use_count">
  ## jemalloc\_profile\_text\_collapsed\_use\_count
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "collapsed形式の jemalloc ヒーププロファイルで、バイト数ではなく割り当て回数で集計するための新しい設定"}]}]} />

jemalloc ヒーププロファイルで `collapsed` 出力フォーマットを使用する場合、バイト数ではなく割り当て回数で集計します。false (デフォルト) の場合、各スタックは使用中のバイト数で重み付けされます。true の場合は、使用中の割り当て数で重み付けされます。

<div id="jemalloc_profile_text_output_format">
  ## jemalloc\_profile\_text\_output\_format
</div>

<SettingsInfoBlock type="JemallocProfileFormat" default_value="collapsed" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "collapsed"},{"label": "system.jemalloc_profile_text テーブルの出力フォーマットを制御するための新しい設定。設定可能な値: 'raw'、'symbolized'、'collapsed'"}]}]} />

system.jemalloc\_profile\_text テーブル内の jemalloc ヒーププロファイルの出力フォーマットです。指定できる値は、'raw' (生のプロファイル) 、'symbolized' (シンボル化された jeprof フォーマット) 、'collapsed' (フレームグラフ形式) です。

<div id="jemalloc_profile_text_symbolize_with_inline">
  ## jemalloc\_profile\_text\_symbolize\_with\_inline
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "jemallocヒーププロファイルのシンボル化時にインラインフレームを含めるかどうかを制御する新しい設定です。有効にすると、シンボル化が遅くなる代わりにインラインフレームが含まれます。無効にすると、より高速に出力するためスキップされます"}]}]} />

jemallocヒーププロファイルのシンボル化時に、インラインフレームを含めるかどうかを指定します。有効にするとインラインフレームが含まれるため、シンボル化処理が大幅に遅くなる可能性があります。無効にするとスキップされます。影響があるのは、'symbolized' および 'collapsed' 出力フォーマットのみです。

<div id="join_algorithm">
  ## join\_algorithm
</div>

<SettingsInfoBlock type="JoinAlgorithm" default_value="direct,parallel_hash,hash" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "direct,parallel_hash,hash"},{"label": "明示的に指定した join アルゴリズムが推奨されるようになったため、'default' は非推奨になりました。また、現在は hash より parallel_hash が優先されます"}]}]} />

使用する [JOIN](/ja/reference/statements/select/join) アルゴリズムを指定します。

複数のアルゴリズムを指定でき、kind/strictness とテーブルエンジンに応じて、そのクエリで利用可能なものが選択されます。

設定可能な値:

* grace\_hash

[Grace hash join](https://en.wikipedia.org/wiki/Hash_join#Grace_hash_join) を使用します。Grace hash は、メモリ使用量を抑えながら複雑な join を高性能に実行できるアルゴリズムです。

Grace join の最初のフェーズでは、右側のテーブルを読み取り、キーカラムの hash value に応じて N 個のバケットに分割します (初期値の N は `grace_hash_join_initial_buckets` です) 。これは、各バケットを独立して処理できるようにするためです。最初のバケットの行はインメモリの hash table に追加され、それ以外はディスクに保存されます。hash table がメモリ制限 (たとえば [`max_bytes_in_join`](/ja/reference/settings/session-settings#max_bytes_in_join) で設定) を超えるまで大きくなると、バケット数が増やされ、各行の割り当て先バケットが変更されます。現在のバケットに属さない行はフラッシュされ、再割り当てされます。

`INNER/LEFT/RIGHT/FULL ALL/ANY JOIN` をサポートします。

* hash

[Hash join algorithm](https://en.wikipedia.org/wiki/Hash_join) を使用します。これは最も汎用的な実装で、kind と strictness のすべての組み合わせ、および `JOIN ON` セクションで `OR` と組み合わせた複数の結合キーをサポートします。

`hash` アルゴリズムを使用する場合、`JOIN` の右側は RAM に読み込まれます。

* parallel\_hash

`hash` join の一種で、データをバケットに分割し、1 つではなく複数のハッシュテーブルを同時実行で構築することで、この処理を高速化します。

`parallel_hash` アルゴリズムを使用する場合、`JOIN` の右側は RAM に読み込まれます。

* partial\_merge

右側のテーブルだけを完全にソートする [sort-merge algorithm](https://en.wikipedia.org/wiki/Sort-merge_join) の一種です。

`RIGHT JOIN` と `FULL JOIN` は `ALL` strictness でのみサポートされます (`SEMI`、`ANTI`、`ANY`、`ASOF` はサポートされません) 。

`partial_merge` アルゴリズムを使用する場合、ClickHouse はデータをソートしてディスクに書き出します。ClickHouse の `partial_merge` アルゴリズムは、従来の実装とは少し異なります。まず、ClickHouse は右側のテーブルを結合キーで block 単位にソートし、ソート済みの block に対して min-max 索引 を作成します。次に、左側のテーブルの一部を `join key` でソートして、右側のテーブルと結合します。不要な右側テーブルの block をスキップするために、min-max 索引 も使用されます。

* direct

`direct` (nested loop とも呼ばれます) アルゴリズムは、左側のテーブルの行をキーとして使用し、右側のテーブルに対してルックアップを行います。
[Dictionary](/ja/reference/engines/table-engines/special/dictionary)、[EmbeddedRocksDB](/ja/reference/engines/table-engines/integrations/embedded-rocksdb)、[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブルなどの特別なストレージでサポートされています。

MergeTree テーブルでは、このアルゴリズムは結合キーのフィルターをストレージ層に直接プッシュダウンします。キーのルックアップにテーブルの主キー索引を使える場合はより効率的ですが、そうでない場合は左側テーブルの各 block ごとに右側テーブルをフルスキャンします。

`INNER` と `LEFT` JOIN のみをサポートし、他の条件を含まない単一カラムの等価結合キーにのみ対応します。

* auto

`auto` に設定すると、まず `hash` join を試し、メモリ制限を超えた場合は実行中に別のアルゴリズムへ切り替えます。

* full\_sorting\_merge

結合前に対象のテーブルを完全にソートする [sort-merge algorithm](https://en.wikipedia.org/wiki/Sort-merge_join) です。

* prefer\_partial\_merge

ClickHouse は可能であれば常に `partial_merge` join を使用し、そうでない場合は `hash` を使用します。*非推奨* で、`partial_merge,hash` と同じです。

* default (deprecated)

古い値のため、今後は使用しないでください。
`direct,hash` と同じです。つまり、direct join と hash join をこの順に試します。

<div id="join_any_take_last_row">
  ## join\_any\_take\_last\_row
</div>

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

`ANY` strictness を持つ JOIN 演算の動作を変更します。

<Note>
  この設定は、[Join](/ja/reference/engines/table-engines/special/join) エンジンのテーブルを使用する `JOIN` 演算にのみ適用されます。
</Note>

設定可能な値:

* 0 — 右側テーブルに一致する行が複数ある場合、見つかった最初の 1 行のみが結合に使用されます。
* 1 — 右側テーブルに一致する行が複数ある場合、見つかった最後の 1 行のみが結合に使用されます。

関連項目:

* [JOIN 句](/ja/reference/statements/select/join)
* [Join テーブルエンジン](/ja/reference/engines/table-engines/special/join)
* [join\_default\_strictness](#join_default_strictness)

<div id="join_default_strictness">
  ## join\_default\_strictness
</div>

<SettingsInfoBlock type="JoinStrictness" default_value="ALL" />

[JOIN 句](/ja/reference/statements/select/join) のデフォルトの strictness を設定します。

設定可能な値:

* `ALL` — 右側のテーブルに一致する行が複数ある場合、ClickHouse は一致した行から [直積](https://en.wikipedia.org/wiki/Cartesian_product) を作成します。これは標準 SQL における通常の `JOIN` の動作です。
* `ANY` — 右側のテーブルに一致する行が複数ある場合、最初に見つかった 1 行だけが結合されます。右側のテーブルに一致する行が 1 行しかない場合、`ANY` と `ALL` の結果は同じです。
* `ASOF` — 対応が不確かな数列を結合するために使用します。
* `空文字列` — クエリで `ALL` または `ANY` が指定されていない場合、ClickHouse は例外をスローします。

<div id="join_on_disk_max_files_to_merge">
  ## join\_on\_disk\_max\_files\_to\_merge
</div>

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

ディスク上で実行される MergeJoin 演算で、並列ソートに使用できるファイル数の上限を設定します。

この設定値が大きいほど、使用する RAM は増え、必要なディスク I/O は減ります。

設定可能な値:

* 2 以上の任意の正の整数。

<div id="join_output_by_rowlist_perkey_rows_threshold">
  ## join\_output\_by\_rowlist\_perkey\_rows\_threshold
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "5"},{"label": "ハッシュ結合で行リストとして出力するかどうかを判断するための、右側テーブルにおけるキーごとの平均行数の下限。"}]}]} />

ハッシュ結合で行リストとして出力するかどうかを判断するための、右側テーブルにおけるキーごとの平均行数の下限。

<div id="join_overflow_mode">
  ## join\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

以下のいずれかの JOIN 制限に達したときに、ClickHouse がどのように動作するかを定義します。

* [max\_bytes\_in\_join](/ja/reference/settings/session-settings#max_bytes_in_join)
* [max\_rows\_in\_join](/ja/reference/settings/session-settings#max_rows_in_join)

設定可能な値:

* `THROW` — ClickHouse は例外をスローして処理を中断します。
* `BREAK` — ClickHouse は処理を中断し、例外はスローしません。

デフォルト値: `THROW`。

**関連項目**

* [JOIN 句](/ja/reference/statements/select/join)
* [Join テーブルエンジン](/ja/reference/engines/table-engines/special/join)

<div id="join_runtime_bloom_filter_bytes">
  ## join\_runtime\_bloom\_filter\_bytes
</div>

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

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

JOIN ランタイムフィルタとして使用されるブルームフィルタのサイズ (バイト単位) です (`enable_join_runtime_filters` 設定を参照) 。

<div id="join_runtime_bloom_filter_hash_functions">
  ## join\_runtime\_bloom\_filter\_hash\_functions
</div>

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

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

JOIN のランタイムフィルタとして使用される bloom filter のハッシュ関数の数です (enable\_join\_runtime\_filters 設定を参照) 。

<div id="join_runtime_bloom_filter_max_ratio_of_set_bits">
  ## join\_runtime\_bloom\_filter\_max\_ratio\_of\_set\_bits
</div>

<SettingsInfoBlock type="Double" default_value="0.7" />

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

ランタイム bloom filter の set bits の数がこの比率を超えると、オーバーヘッドを抑えるため、その filter は完全に無効化されます。

<div id="join_runtime_filter_blocks_to_skip_before_reenabling">
  ## join\_runtime\_filter\_blocks\_to\_skip\_before\_reenabling
</div>

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

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

以前、フィルタリング効率が低いために無効化されたランタイムフィルタを、動的に再度有効化してみるまでにスキップするブロック数。

<div id="join_runtime_filter_exact_values_limit">
  ## join\_runtime\_filter\_exact\_values\_limit
</div>

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

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

ランタイムフィルタ内でそのまま Set に格納される要素の最大数です。このしきい値を超えると、bloom filter に切り替わります。

<div id="join_runtime_filter_pass_ratio_threshold_for_disabling">
  ## join\_runtime\_filter\_pass\_ratio\_threshold\_for\_disabling
</div>

<SettingsInfoBlock type="Double" default_value="0.7" />

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

チェックした行に対する通過行の比率がこのしきい値を上回る場合、ランタイムフィルタは効果が低いと見なされ、オーバーヘッドを減らすため、次の `join_runtime_filter_blocks_to_skip_before_reenabling` ブロックの間は無効化されます。

<div id="join_to_sort_maximum_table_rows">
  ## join\_to\_sort\_maximum\_table\_rows
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "10000"},{"label": "LEFT JOIN または INNER JOIN で、右テーブルをキーで再配置するかどうかを判断するための、右テーブルの最大行数"}]}]} />

LEFT JOIN または INNER JOIN で、右テーブルをキーで再配置するかどうかを判断するための、右テーブルの最大行数。

<div id="join_to_sort_minimum_perkey_rows">
  ## join\_to\_sort\_minimum\_perkey\_rows
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "40"},{"label": "LEFT JOIN または INNER JOIN において、右テーブルをキーで再配置するかどうかを判断するための、右テーブルのキーごとの平均行数の下限です。この設定により、スパースなテーブルキーには最適化が適用されないようにします"}]}]} />

LEFT JOIN または INNER JOIN において、右テーブルをキーで再配置するかどうかを判断するための、右テーブルのキーごとの平均行数の下限です。この設定により、スパースなテーブルキーには最適化が適用されないようにします

<div id="join_use_nulls">
  ## join\_use\_nulls
</div>

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

[JOIN](/ja/reference/statements/select/join) の動作を設定します。テーブルをマージすると、空のセルが生じることがあります。ClickHouse はこの設定に応じて、それらを異なる方法で補完します。

設定可能な値:

* 0 — 空のセルは、対応するフィールド型のデフォルト値で補完されます。
* 1 — `JOIN` は標準 SQL と同じように動作します。対応するフィールドの型は [Nullable](/ja/reference/data-types/nullable) に変換され、空のセルは [NULL](/ja/reference/syntax) で補完されます。

<div id="joined_block_split_single_row">
  ## joined\_block\_split\_single\_row
</div>

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

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

左テーブルの単一の行に対応する行単位で、ハッシュ結合の結果をchunkに分割できるようにします。
これにより、右テーブルで一致する行が多い行がある場合のメモリ使用量を削減できることがありますが、CPU使用量は増える可能性があります。
この設定を有効にするには、`max_joined_block_size_rows != 0` が必須であることに注意してください。
この設定を `max_joined_block_size_bytes` と組み合わせると、右テーブルで一致する行が多い大きな行が一部にある偏ったデータにおいて、過剰なメモリ使用量を避けるのに役立ちます。

<div id="joined_subquery_requires_alias">
  ## joined\_subquery\_requires\_alias
</div>

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

名前修飾を正しく行えるように、結合に使用するサブクエリとテーブル関数に別名を必須とします。

<div id="kafka_disable_num_consumers_limit">
  ## kafka\_disable\_num\_consumers\_limit
</div>

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

使用可能な CPU コア数に応じて適用される kafka\_num\_consumers の制限を無効にします。

<div id="kafka_max_wait_ms">
  ## kafka\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="5000" />

再試行する前に、[Kafka](/ja/reference/engines/table-engines/integrations/kafka) からメッセージを読み取る際の待機時間 (ミリ秒) です。

設定可能な値:

* 正の整数。
* 0 — 無制限のタイムアウト。

関連項目:

* [Apache Kafka](https://kafka.apache.org/)

<div id="keeper_map_strict_mode">
  ## keeper\_map\_strict\_mode
</div>

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

KeeperMap に対する操作時に追加のチェックを有効にします。たとえば、すでに存在するキーに insert した場合に例外をスローします

<div id="keeper_max_retries">
  ## keeper\_max\_retries
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "10"},{"label": "一般的な Keeper 操作に対する最大再試行回数"}]}]} />

一般的な Keeper 操作に対する最大再試行回数

<div id="keeper_retry_initial_backoff_ms">
  ## keeper\_retry\_initial\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "100"},{"label": "一般的なKeeper操作に対する初期バックオフタイムアウト"}]}]} />

一般的なKeeper操作に対する初期バックオフタイムアウト

<div id="keeper_retry_max_backoff_ms">
  ## keeper\_retry\_max\_backoff\_ms
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "5000"},{"label": "Keeper の一般的な操作に対する最大バックオフタイムアウト"}]}]} />

Keeper の一般的な操作に対する最大バックオフタイムアウト

<div id="least_greatest_legacy_null_behavior">
  ## least\_greatest\_legacy\_null\_behavior
</div>

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

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

有効にすると、関数 'least' と 'greatest' は、いずれかの引数がNULLの場合にNULLを返します。

<div id="legacy_column_name_of_tuple_literal">
  ## legacy\_column\_name\_of\_tuple\_literal
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.7"},{"label": "0"},{"label": "この設定は互換性のためにのみ追加されました。21.7 未満のバージョンからそれ以降のバージョンへクラスターをローリングアップデートする際は、'true' に設定することを推奨します"}]}]} />

大きなタプルリテラルでは、ハッシュではなく、各要素名を対応するカラム名としてすべて使用します。この設定は互換性のためにのみ存在します。21.7 未満のバージョンからそれ以降のバージョンへクラスターをローリングアップデートする際は、'true' に設定することを推奨します。

<div id="lightweight_delete_mode">
  ## lightweight\_delete\_mode
</div>

<SettingsInfoBlock type="LightweightDeleteMode" default_value="alter_update" />

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

論理削除の一部として実行される内部更新クエリのモードです。

設定可能な値:

* `alter_update` - ヘビーウェイトな mutation を作成する `ALTER UPDATE` クエリを実行します。
* `lightweight_update` - 可能であれば論理更新を実行し、そうでなければ `ALTER UPDATE` を実行します。
* `lightweight_update_force` - 可能であれば論理更新を実行し、そうでなければ例外を発生させます。

<div id="lightweight_deletes_sync">
  ## lightweight\_deletes\_sync
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "2"},{"label": "`mutation_sync` と同じですが、論理削除の実行のみを制御します"}]}]} />

[`mutations_sync`](#mutations_sync) と同じですが、論理削除の実行のみを制御します。

設定可能な値:

| 値   | 説明                                                                                                                 |
| --- | ------------------------------------------------------------------------------------------------------------------ |
| `0` | ミューテーションは非同期で実行されます。                                                                                               |
| `1` | クエリは、現在のサーバー上で論理削除が完了するまで待機します。                                                                                    |
| `2` | クエリは、すべてのレプリカ (存在する場合) で論理削除が完了するまで待機します。                                                                          |
| `3` | クエリはアクティブなレプリカのみの完了を待機します。`SharedMergeTree` でのみサポートされます。`ReplicatedMergeTree` では、`mutations_sync = 2` と同じように動作します。 |

**関連項目**

* [ALTER クエリの同期性](/ja/reference/statements/alter#synchronicity-of-alter-queries)
* [Mutations](/ja/reference/statements/alter#mutations)

Cloud でのデフォルト値: `1`.

<div id="limit">
  ## limit
</div>

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

クエリ結果から取得する行数の上限を設定します。この設定は [LIMIT](/ja/reference/statements/select/limit) 句で指定した値を調整し、クエリで指定した制限がこの設定で定めた上限を超えないようにします。

設定可能な値:

* 0 — 行数は制限されません。
* 正の整数。

<div id="load_balancing">
  ## load\_balancing
</div>

<SettingsInfoBlock type="LoadBalancing" default_value="random" />

分散クエリ処理で使用されるレプリカ選択アルゴリズムを指定します。

ClickHouse は、レプリカを選択するための次のアルゴリズムをサポートしています。

* [ランダム](#load_balancing-random) (既定)
* [最も近いホスト名](#load_balancing-nearest_hostname)
* [ホスト名のレーベンシュタイン距離](#load_balancing-hostname_levenshtein_distance)
* [定義順](#load_balancing-in_order)
* [最初またはランダム](#load_balancing-first_or_random)
* [ラウンドロビン](#load_balancing-round_robin)

関連項目:

* [distributed\_replica\_max\_ignored\_errors](#distributed_replica_max_ignored_errors)

<div id="load_balancing-random">
  ### ランダム (デフォルト)
</div>

```sql theme={null}
load_balancing = random
```

各レプリカについて、エラー数がカウントされます。クエリはエラーが最も少ないレプリカに送信され、そのようなレプリカが複数ある場合は、そのうちのいずれか 1 つに送られます。
欠点: サーバーへの近さは考慮されません。また、レプリカごとにデータが異なる場合は、取得されるデータも異なります。

<div id="load_balancing-nearest_hostname">
  ### Nearest hostname
</div>

```sql theme={null}
load_balancing = nearest_hostname
```

各レプリカについて、エラー数がカウントされます。5 分ごとに、エラー数は整数除算で 2 で割られます。したがって、エラー数は指数平滑化により直近の時間に対して計算されます。エラー数が最小のレプリカが 1 つある場合 (つまり、他のレプリカでは最近エラーが発生していた場合) 、そのレプリカにクエリが送信されます。エラー数が同じ最小値のレプリカが複数ある場合は、設定ファイル内のサーバーのホスト名に最も近いホスト名を持つレプリカにクエリが送信されます (両方のホスト名のうち短い方の長さまで、同じ位置にある異なる文字数に基づきます) 。

たとえば、example01-01-1 と example01-01-2 は 1 文字だけ異なりますが、example01-01-1 と example01-02-2 は 2 か所で異なります。
この手法は一見すると素朴に思えるかもしれませんが、ネットワークトポロジーに関する外部データを必要とせず、また IP アドレスも比較しません。これは、IPv6 アドレスでは複雑になるためです。

したがって、同等のレプリカがある場合は、名前が最も近いものが優先されます。
また、同じサーバーにクエリを送信する場合、障害がなければ、分散クエリも同じサーバー群に送られると考えられます。したがって、レプリカに異なるデータが配置されていたとしても、そのクエリはほぼ同じ結果を返します。

<div id="load_balancing-hostname_levenshtein_distance">
  ### ホスト名のレーベンシュタイン距離
</div>

```sql theme={null}
load_balancing = hostname_levenshtein_distance
```

`nearest_hostname` と同様ですが、[レーベンシュタイン距離](https://en.wikipedia.org/wiki/Levenshtein_distance) に基づいてホスト名を比較します。たとえば:

```text theme={null}
example-clickhouse-0-0 ample-clickhouse-0-0
1

example-clickhouse-0-0 example-clickhouse-1-10
2

example-clickhouse-0-0 example-clickhouse-12-0
3
```

<div id="load_balancing-in_order">
  ### In Order
</div>

```sql theme={null}
load_balancing = in_order
```

同じ数のエラーを持つレプリカには、設定で指定された順序どおりにアクセスされます。
この方法は、どのレプリカを優先すべきかを正確に把握している場合に適しています。

<div id="load_balancing-first_or_random">
  ### First or Random
</div>

```sql theme={null}
load_balancing = first_or_random
```

このアルゴリズムは、対象のセット内で最初のレプリカを選択し、そのレプリカが利用できない場合はランダムなレプリカを選択します。これはクロスレプリケーショントポロジーのセットアップでは有効ですが、その他の構成ではほとんど意味がありません。

`first_or_random` アルゴリズムは、`in_order` アルゴリズムの問題を解決します。`in_order` では、1 つのレプリカがダウンすると、次のレプリカに負荷が 2 倍かかる一方で、残りのレプリカは通常どおりのトラフィック量を処理します。`first_or_random` アルゴリズムを使用すると、利用可能なレプリカ間で負荷が均等に分散されます。

設定 `load_balancing_first_offset` を使用すると、どのレプリカを最初のレプリカとするかを明示的に指定できます。これにより、レプリカ間でクエリのワークロードを再分散する際の制御性が高まります。

<div id="load_balancing-round_robin">
  ### ラウンドロビン
</div>

```sql theme={null}
load_balancing = round_robin
```

このアルゴリズムでは、エラー数が同じレプリカ間でラウンドロビン方式を使用します (カウント対象となるのは、`round_robin` ポリシーのクエリのみです) 。

<div id="load_balancing_first_offset">
  ## load\_balancing\_first\_offset
</div>

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

FIRST\_OR\_RANDOM ロードバランシング戦略を使用する際に、優先的にクエリを送信するレプリカを指定します。

<div id="load_marks_asynchronously">
  ## load\_marks\_asynchronously
</div>

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

MergeTree のマークを非同期で読み込む

Cloud でのデフォルト値: `1`.

<div id="local_filesystem_read_method">
  ## local\_filesystem\_read\_method
</div>

<SettingsInfoBlock type="String" default_value="pread_threadpool" />

ローカルファイルシステムからデータを読み取る方法です。指定できる値は次のいずれかです: read, pread, mmap, io\_uring, pread\_threadpool。

'io\_uring' メソッドは実験的な機能であり、読み取りと書き込みが同時実行される状況では、Log、TinyLog、StripeLog、File、Set、Join、および追記可能なファイルを持つその他のテーブルでは動作しません。
インターネット上の 'io\_uring' に関するさまざまな記事を読んでも、それに惑わされないでください。大量の小さな I/O リクエストがある場合を除き、これはより優れたファイル読み取り方法ではありません。ClickHouse ではそのようなケースには当てはまりません。'io\_uring' を有効にする理由はありません。

<div id="local_filesystem_read_prefetch">
  ## local\_filesystem\_read\_prefetch
</div>

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

ローカルファイルシステムからデータを読み込む際に先読みを使用するかどうかを指定します。

<div id="lock_acquire_timeout">
  ## lock\_acquire\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="120" />

ロック要求が失敗するまでに待機する秒数を定義します。

ロックのタイムアウトは、テーブルに対する読み取り/書き込み操作の実行中にデッドロックを防ぐために使用されます。タイムアウトに達してロック要求が失敗すると、ClickHouse server はエラーコード `DEADLOCK_AVOIDED` とともに、例外 "Locking attempt timed out! Possible deadlock avoided. Client should retry." をスローします。

設定可能な値:

* 正の整数 (秒単位) 。
* 0 — ロックのタイムアウトなし。

<div id="log_comment">
  ## log\_comment
</div>

[system.query\_log](/ja/reference/system-tables/query_log) テーブルの `log_comment` フィールドの値と、サーバーログに出力するコメントテキストを指定します。

サーバーログの可読性を高めるために使用できます。さらに、[clickhouse-test](/ja/resources/develop-contribute/contribute/tests) の実行後に、`system.query_log` からテストに関連するクエリを抽出する際にも役立ちます。

設定可能な値:

* [max\_query\_size](#max_query_size) 以下の任意の文字列。max\_query\_size を超えると、サーバーは例外を発生させます。

**例**

クエリ:

```sql theme={null}
SET log_comment = 'log_comment test', log_queries = 1;
SELECT 1;
SYSTEM FLUSH LOGS;
SELECT type, query FROM system.query_log WHERE log_comment = 'log_comment test' AND event_date >= yesterday() ORDER BY event_time DESC LIMIT 2;
```

結果:

```text theme={null}
┌─type────────┬─query─────┐
│ QueryStart  │ SELECT 1; │
│ QueryFinish │ SELECT 1; │
└─────────────┴───────────┘
```

<div id="log_formatted_queries">
  ## log\_formatted\_queries
</div>

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

整形済みのクエリを [system.query\_log](/ja/reference/system-tables/query_log) システムテーブルに記録します ([system.query\_log](/ja/reference/system-tables/query_log) の `formatted_query` カラムに格納されます) 。

設定可能な値:

* 0 — 整形済みのクエリはシステムテーブルに記録されません。
* 1 — 整形済みのクエリはシステムテーブルに記録されます。

<div id="log_processors_profiles">
  ## log\_processors\_profiles
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "デフォルトで有効"}]}]} />

実行中またはデータ待機中にプロセッサが費やした時間を、`system.processors_profile_log` テーブルに書き込みます。

関連項目:

* [`system.processors_profile_log`](/ja/reference/system-tables/processors_profile_log)
* [`EXPLAIN PIPELINE`](/ja/reference/statements/explain#explain-pipeline)

<div id="log_profile_events">
  ## log\_profile\_events
</div>

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

クエリパフォーマンスに関する統計を、query\_log、query\_thread\_log、query\_views\_log に記録します。

<div id="log_queries">
  ## log\_queries
</div>

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

クエリのログ記録を設定します。

この設定を有効にすると、ClickHouse に送信されたクエリは、サーバー設定パラメーター [query\_log](/ja/reference/settings/server-settings/settings#query_log) のルールに従って記録されます。

例:

```text theme={null}
log_queries=1
```

<div id="log_queries_cut_to_length">
  ## log\_queries\_cut\_to\_length
</div>

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

クエリの長さが指定したしきい値 (バイト単位) を超える場合、クエリログに書き込む際にクエリを切り詰めます。通常のテキストログに出力されるクエリの長さも制限します。

<div id="log_queries_min_query_duration_ms">
  ## log\_queries\_min\_query\_duration\_ms
</div>

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

有効な場合 (0 以外) 、この設定値より短時間で完了するクエリはログに記録されません (これは [MySQL Slow Query Log](https://dev.mysql.com/doc/refman/5.7/slow-query-log.html) の `long_query_time` に相当すると考えられます) 。つまり、これらのクエリは次のテーブルには記録されません。

* `system.query_log`
* `system.query_thread_log`

ログに記録されるのは、次の種類のクエリだけです。

* `QUERY_FINISH`

* `EXCEPTION_WHILE_PROCESSING`

* 型: ミリ秒

* デフォルト値: 0 (すべてのクエリ)

<div id="log_queries_min_type">
  ## log\_queries\_min\_type
</div>

<SettingsInfoBlock type="LogQueriesType" default_value="QUERY_START" />

記録する `query_log` の最小種別です。

設定可能な値:

* `QUERY_START` (`=1`)
* `QUERY_FINISH` (`=2`)
* `EXCEPTION_BEFORE_START` (`=3`)
* `EXCEPTION_WHILE_PROCESSING` (`=4`)

`query_log` に記録される項目を制限するために使用できます。たとえば、エラーのみに関心がある場合は、`EXCEPTION_WHILE_PROCESSING` を使用できます:

```text theme={null}
log_queries_min_type='EXCEPTION_WHILE_PROCESSING'
```

<div id="log_queries_probability">
  ## log\_queries\_probability
</div>

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

指定した確率でランダムに選択されたクエリのサンプルのみを、[query\_log](/ja/reference/system-tables/query_log)、[query\_thread\_log](/ja/reference/system-tables/query_thread_log)、および[query\_views\_log](/ja/reference/system-tables/query_views_log) システムテーブルに書き込みます。これにより、1 秒あたりのクエリ数が多い場合の負荷を軽減できます。

設定可能な値:

* 0 — クエリはシステムテーブルに記録されません。
* \[0..1] の範囲の正の浮動小数点数。たとえば、設定値が `0.5` の場合、クエリのおよそ半分がシステムテーブルに記録されます。
* 1 — すべてのクエリがシステムテーブルに記録されます。

<div id="log_query_settings">
  ## log\_query\_settings
</div>

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

クエリ設定を query\_log および OpenTelemetry の span ログに記録します。

<div id="log_query_threads">
  ## log\_query\_threads
</div>

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

クエリスレッドのログ記録を設定します。

クエリスレッドは [system.query\_thread\_log](/ja/reference/system-tables/query_thread_log) テーブルに記録されます。この設定は、[log\_queries](#log_queries) が true の場合にのみ有効です。この設定を有効にすると、ClickHouse が実行するクエリのスレッドは、[query\_thread\_log](/ja/reference/settings/server-settings/settings#query_thread_log) サーバー設定パラメータのルールに従って記録されます。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

**例**

```text theme={null}
log_query_threads=1
```

<div id="log_query_views">
  ## log\_query\_views
</div>

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

クエリビューのログ記録を設定します。

この設定を有効にすると、ClickHouse が実行したクエリに関連するビュー (マテリアライズドビューまたは live view) がある場合、それらはサーバー設定パラメータ [query\_views\_log](/ja/reference/settings/server-settings/settings#query_views_log) に記録されます。

例:

```text theme={null}
log_query_views=1
```

<div id="low_cardinality_allow_in_native_format">
  ## low\_cardinality\_allow\_in\_native\_format
</div>

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

[Native](/ja/reference/formats/Native)フォーマットで [LowCardinality](/ja/reference/data-types/lowcardinality) データ型の使用を許可または制限します。

`LowCardinality` の使用が制限されている場合、ClickHouseサーバーは `SELECT` クエリでは `LowCardinality` カラムを通常のカラムに変換し、`INSERT` クエリでは通常のカラムを `LowCardinality` カラムに変換します。

この設定は主に、`LowCardinality` データ型をサポートしていないサードパーティ製クライアント向けに必要です。

設定可能な値:

* 1 — `LowCardinality` の使用は制限されません。
* 0 — `LowCardinality` の使用は制限されます。

<div id="low_cardinality_max_dictionary_size">
  ## low\_cardinality\_max\_dictionary\_size
</div>

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

ストレージのファイルシステムに書き込める、[LowCardinality](/ja/reference/data-types/lowcardinality) データ型の共有グローバル Dictionary の最大サイズを行数で設定します。この設定により、Dictionary が無制限に増大した場合の RAM に関する問題を防ぎます。Dictionary の最大サイズ制限のためにエンコードできないデータは、ClickHouse によって通常の方法で書き込まれます。

設定可能な値:

* 任意の正の整数。

<div id="low_cardinality_use_single_dictionary_for_part">
  ## low\_cardinality\_use\_single\_dictionary\_for\_part
</div>

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

data part に対して単一の Dictionary を使用するかどうかを切り替えます。

デフォルトでは、ClickHouseサーバーは Dictionary のサイズを監視しており、Dictionary がオーバーフローすると次の Dictionary への書き込みを開始します。複数の Dictionary が作成されないようにするには、`low_cardinality_use_single_dictionary_for_part = 1` を設定します。

設定可能な値:

* 1 — data part に対して複数の Dictionary を作成することを禁止します。
* 0 — data part に対して複数の Dictionary を作成することを禁止しません。

<div id="low_priority_query_wait_time_ms">
  ## low\_priority\_query\_wait\_time\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="1000" />

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

クエリの優先順位付けの仕組みが使用されている場合 (設定 `priority` を参照) 、低優先度のクエリは高優先度のクエリの完了を待機します。この設定では、その待機時間を指定します。

<div id="make_distributed_plan">
  ## make\_distributed\_plan
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "新しい実験的な設定"}]}]} />

分散クエリプランを生成します。

<div id="materialize_skip_indexes_on_insert">
  ## materialize\_skip\_indexes\_on\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "INSERT 時のスキップ索引の実体化を無効にするための新しい設定を追加"}]}]} />

INSERT 時にスキップ索引を構築して保存するかどうかを指定します。無効にすると、スキップ索引は[マージ時](/ja/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge)または明示的な[MATERIALIZE INDEX](/ja/reference/statements/alter/skipping-index#materialize-index)によってのみ構築・保存されます。

関連項目: [exclude\_materialize\_skip\_indexes\_on\_insert](#exclude_materialize_skip_indexes_on_insert)。

<div id="materialize_statistics_on_insert">
  ## materialize\_statistics\_on\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "デフォルトでは INSERT 時に統計を作成しないようにし、代わりにマージに任せるよう変更"}]}, {"id": "row-2","items": [{"label": "24.6"},{"label": "1"},{"label": "INSERT 時の統計のマテリアライズを無効化できる新しい設定を追加"}]}]} />

INSERT で統計を作成して挿入するかどうかを指定します。無効にすると、統計はマージ時、または明示的な MATERIALIZE STATISTICS によって作成・保存されます

<div id="materialize_ttl_after_modify">
  ## materialize\_ttl\_after\_modify
</div>

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

ALTER MODIFY TTL クエリの実行後、古いデータに有効期限 (TTL) を適用します

<div id="materialized_views_ignore_errors">
  ## materialized\_views\_ignore\_errors
</div>

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

MATERIALIZED VIEW で発生したエラーを無視し、MV の有無にかかわらず元のブロックをテーブルに書き込みます

<div id="materialized_views_squash_parallel_inserts">
  ## materialized\_views\_squash\_parallel\_inserts
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "必要に応じて従来の動作を維持するための設定を追加しました。"}]}]} />

生成されるパーツ数を減らすため、単一の INSERT クエリによる materialized view の宛先テーブルへの並列 insert をまとめます。
false に設定され、かつ `parallel_view_processing` が有効な場合、INSERT クエリは `max_insert_thread` ごとに宛先テーブルにパーツを生成します。

<div id="max_analyze_depth">
  ## max\_analyze\_depth
</div>

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

インタープリターが実行する解析の最大回数。

<div id="max_ast_depth">
  ## max\_ast\_depth
</div>

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

クエリの構文木の最大ネスト深度です。これを超えると、例外が発生します。

<Note>
  現時点では、これはパース中にはチェックされず、クエリのパース後にのみチェックされます。
  つまり、パース中に深すぎる構文木が作成される可能性はありますが、
  そのクエリは失敗します。
</Note>

<div id="max_ast_elements">
  ## max\_ast\_elements
</div>

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

クエリ構文木内の要素数の上限です。これを超えると、例外が発生します。

<Note>
  現時点では、これはパース中にはチェックされず、クエリのパース完了後にのみチェックされます。
  つまり、パース中に深さが大きすぎる構文木が生成される可能性はありますが、
  そのクエリは失敗します。
</Note>

<div id="max_autoincrement_series">
  ## max\_autoincrement\_series
</div>

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

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

`generateSerialID` 関数で作成されるシリーズ数の上限です。

各シリーズは Keeper 内のノードを表すため、その数は多くても数百万個程度に抑えることを推奨します。

<div id="max_backup_bandwidth">
  ## max\_backup\_bandwidth
</div>

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

server 上の特定のバックアップにおける、1 秒あたりの最大読み取り速度 (バイト単位) です。0 は無制限を意味します。

<div id="max_block_size">
  ## max\_block\_size
</div>

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

ClickHouse では、データは block (カラムのパーツの集合) 単位で処理されます。単一の block に対する内部処理サイクル自体は効率的ですが、各 block の処理には無視できないコストがかかります。

`max_block_size` 設定は、テーブルからデータを読み込む際に、1 つの block に含める行数の推奨最大値を示します。ただし、常に `max_block_size` サイズの block がテーブルから読み込まれるわけではありません。ClickHouse が、取得するデータ量はそれより少なくてよいと判断した場合は、より小さい block が処理されます。

各 block の処理コストが目立たないようにするため、block サイズは小さすぎてはいけません。また、LIMIT 句を含むクエリが最初の block の処理後すぐに実行できるようにするため、大きすぎてもいけません。`max_block_size` を設定する際は、複数のスレッドで多数のカラムを抽出するときにメモリを過剰に消費しないこと、そして少なくともある程度の cache 局所性を保つことを目標にしてください。

<div id="max_bytes_before_external_group_by">
  ## max\_bytes\_before\_external\_group\_by
</div>

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

Cloud でのデフォルト値: レプリカあたりのメモリ量の半分。

`GROUP BY` 句を外部メモリで実行する機能を有効または無効にします。
([外部メモリでの GROUP BY](/ja/reference/statements/select/group-by#group-by-in-external-memory) を参照)

設定可能な値:

* 1 回の [GROUP BY](/ja/reference/statements/select/group-by) 操作で使用できる RAM の最大量 (バイト単位) 。
* `0` — 外部メモリでの `GROUP BY` は無効です。

<Note>
  GROUP BY 操作中のメモリ使用量がこのしきい値 (バイト単位) を超えると、
  「external aggregation」モードが有効になり、中間データがディスクに書き出されます。

  推奨値は、使用可能なシステムメモリの半分です。
</Note>

<div id="max_bytes_before_external_join">
  ## max\_bytes\_before\_external\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "ハッシュ結合のディスクへの自動スピルを制御するための新しい設定です。0以外の値を指定するとスピルが有効になり、バイト単位のしきい値が設定されます。"}]}]} />

0以外の値に設定され、`join_algorithm` が `hash`、`parallel_hash`、`default`、または `auto` の場合、右側のデータがこのバイト数を超えると、ディスクへのスピルを可能にするため、ハッシュ結合は自動的に Grace Hash Join に変換されます。`0` (デフォルト) に設定すると、この絶対バイトしきい値は無効になりますが、`max_bytes_ratio_before_external_join` (デフォルトは `0.5`) により自動スピルが発生する可能性はあります。自動スピルを完全に無効にするには、両方を `0` に設定してください。これにより、JOIN 最適化による read in order は行われなくなります。

<div id="max_bytes_before_external_sort">
  ## max\_bytes\_before\_external\_sort
</div>

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

Cloud でのデフォルト値: レプリカごとのメモリ量の半分。

`ORDER BY` 句を外部メモリで実行するかどうかを制御します。詳細は [ORDER BY Implementation Details](/ja/reference/statements/select/order-by#implementation-details) を参照してください。
`ORDER BY` の処理中にメモリ使用量がこのしきい値 (バイト単位) を超えると、「外部ソート」モード (データをディスクに書き出す) が有効になります。

設定可能な値:

* 1 回の [ORDER BY](/ja/reference/statements/select/order-by) 操作で使用できる RAM の最大量 (バイト単位) 。
  推奨値は、利用可能なシステムメモリの半分です
* `0` — 外部メモリでの `ORDER BY` は無効です。

<div id="max_bytes_before_remerge_sort">
  ## max\_bytes\_before\_remerge\_sort
</div>

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

ORDER BY と LIMIT を使用する場合、メモリ使用量が指定したしきい値を超えると、最終的なマージの前にブロックを追加でマージする処理を行い、上位 LIMIT 行だけを保持します。

<div id="max_bytes_for_lazy_final">
  ## max\_bytes\_for\_lazy\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "256000000"},{"label": "lazy FINAL 最適化で使用するセットの最大バイト数に関する新しい設定"}]}]} />

lazy FINAL 最適化で使用するセットの最大バイト数です。これを超えると、通常の FINAL にフォールバックします。

<div id="max_bytes_in_distinct">
  ## max\_bytes\_in\_distinct
</div>

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

DISTINCT 使用時にハッシュテーブルが使用する、メモリ内の状態の最大バイト数 (非圧縮バイト単位) 。

<div id="max_bytes_in_join">
  ## max\_bytes\_in\_join
</div>

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

テーブルの結合時に使用されるハッシュテーブルの最大サイズ (バイト数) です。

この設定は、[SELECT ... JOIN](/ja/reference/statements/select/join)
操作と [Join table engine](/ja/reference/engines/table-engines/special/join) に適用されます。

クエリに JOIN が含まれている場合、ClickHouse は中間結果ごとにこの設定を確認します。

上限に達した場合、ClickHouse は異なる動作で処理を継続できます。実行する動作は
[join\_overflow\_mode](/ja/reference/settings/session-settings#join_overflow_mode) 設定で選択します。

設定可能な値:

* 正の整数。
* 0 — メモリ制御は無効です。

<div id="max_bytes_in_set">
  ## max\_bytes\_in\_set
</div>

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

サブクエリから作成された IN 句内の Set が使用する最大バイト数 (非圧縮データ) 。

<div id="max_bytes_ratio_before_external_group_by">
  ## max\_bytes\_ratio\_before\_external\_group\_by
</div>

<SettingsInfoBlock type="Double" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0.5"},{"label": "デフォルトでディスクへの自動スピルを有効にする。"}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "新しい設定。"}]}]} />

`GROUP BY` に使用できる、利用可能メモリの割合です。しきい値に達すると、
外部メモリを使用した集約に切り替わります。

たとえば `0.6` に設定すると、`GROUP BY` は実行開始時に利用可能メモリ
(server/user/merges に対する) の 60% まで使用できます。それ以降は、
外部集約を使用し始めます。

<div id="max_bytes_ratio_before_external_join">
  ## max\_bytes\_ratio\_before\_external\_join
</div>

<SettingsInfoBlock type="Double" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0.5"},{"label": "新しい設定: ハッシュ結合で利用可能なメモリのうち、ディスクへのスピルのしきい値として使用する比率。デフォルト値は `0.5` で、`max_bytes_ratio_before_external_group_by` および `max_bytes_ratio_before_external_sort` と同様の動作をします。絶対値の `max_bytes_before_external_join` と組み合わせて使用し、両者のうち小さい方が適用されます。"}]}]} />

`JOIN` に使用できる利用可能メモリの比率です。この値に達すると、ハッシュ結合は Grace Hash Join に変換され、右側のデータをディスクにスピルします。

たとえば `0.6` に設定すると、`JOIN` は実行開始時に、利用可能なメモリ (server/user/merges 用) の `60%` を右側のハッシュテーブルに使用できます。それ以降はディスクへのスピルを開始します。

`max_bytes_before_external_join` と `max_bytes_ratio_before_external_join` の両方が設定されている場合は、しきい値として小さい方が使用されます。比率が `0` の場合は、絶対値の設定のみが適用されます。

`join_algorithm` が `hash`、`parallel_hash`、`default`、または `auto` であり、一時データのパスが設定されている場合にのみ有効です。

<div id="max_bytes_ratio_before_external_sort">
  ## max\_bytes\_ratio\_before\_external\_sort
</div>

<SettingsInfoBlock type="Double" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0.5"},{"label": "デフォルトでディスクへの自動スピルを有効化。"}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "新しい設定"}]}]} />

`ORDER BY` に使用できる、利用可能メモリの割合です。この値に達すると、外部ソートが使用されます。

たとえば `0.6` に設定すると、`ORDER BY` は実行開始時に利用可能メモリ (server/user/merges に対する) の `60%` まで使用できます。その後は外部ソートの使用を開始します。

なお、`max_bytes_before_external_sort` は引き続き適用されるため、ディスクへのスピルが行われるのは、ソートブロックが `max_bytes_before_external_sort` を超える場合のみです。

<div id="max_bytes_to_read">
  ## max\_bytes\_to\_read
</div>

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

クエリの実行時に、tableから読み取れる最大バイト数 (非圧縮データ) です。
この制限は、処理されるデータの各chunkごとにチェックされ、最も深いtable expressionにのみ適用されます。リモートサーバーから読み取る場合は、リモートサーバー上でのみチェックされます。

<div id="max_bytes_to_read_leaf">
  ## max\_bytes\_to\_read\_leaf
</div>

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

分散クエリの実行時に、リーフノード上のローカル
テーブルから読み取れる最大バイト数 (非圧縮データ) です。分散クエリでは、
各分片 (リーフ) に対して複数のサブクエリが発行される場合がありますが、この制限が
チェックされるのはリーフノードでの読み取り段階のみであり、ルートノードでの
結果のマージ段階では無視されます。

たとえば、あるクラスターが 2 つの分片で構成され、各分片に 100 バイトのデータを持つテーブルが
含まれているとします。両方のテーブルからすべてのデータを読み取る
分散クエリで設定 `max_bytes_to_read=150` を指定すると、合計で
200 バイトになるため失敗します。`max_bytes_to_read_leaf=150` を指定したクエリは、
リーフノードが最大でも 100 バイトしか読み取らないため成功します。

この制限は、処理される各 chunk のデータに対してチェックされます。

<Note>
  この設定は `prefer_localhost_replica=1` では安定しません。
</Note>

<div id="max_bytes_to_sort">
  ## max\_bytes\_to\_sort
</div>

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

ソート前に処理できる最大バイト数。ORDER BY 操作で、指定した量を超える
非圧縮バイトを処理する必要がある場合の動作は、`sort_overflow_mode` によって
決まります。デフォルト値は `throw` です。

<div id="max_bytes_to_transfer">
  ## max\_bytes\_to\_transfer
</div>

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

GLOBAL IN/JOIN セクションの実行時に、リモートサーバーに渡す、または一時テーブルに保存できる最大バイト数 (非圧縮データ) 。

<div id="max_columns_to_read">
  ## max\_columns\_to\_read
</div>

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

1 回のクエリで table から読み取れるカラムの最大数です。
クエリで指定した数を超えるカラムを読み取る必要がある場合は、例外
がスローされます。

<Tip>
  この設定は、過度に複雑なクエリを防ぐのに役立ちます。
</Tip>

`0` は無制限を意味します。

<div id="max_compress_block_size">
  ## max\_compress\_block\_size
</div>

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

テーブルへの書き込み時に圧縮する前の、非圧縮データのブロックの最大サイズです。デフォルト値は 1,048,576 (1 MiB) です。一般に、より小さいブロックサイズを指定すると圧縮率はわずかに低下しますが、cache の局所性により圧縮および展開の速度はわずかに向上し、メモリ消費量は減少します。

<Note>
  これは上級者向けの設定です。ClickHouse を使い始めたばかりであれば、変更しないでください。
</Note>

圧縮用のブロック (バイトで構成されるメモリの chunk) と、クエリ処理用のブロック (テーブルの行の集合) を混同しないでください。

<div id="max_concurrent_queries_for_all_users">
  ## max\_concurrent\_queries\_for\_all\_users
</div>

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

この設定の値が、現在同時に処理されているクエリ数以下の場合、例外をスローします。

例: `max_concurrent_queries_for_all_users` はすべてのユーザーに対して 99 に設定でき、データベース管理者は、server が過負荷状態でも調査用のクエリを実行できるよう、自身については 100 に設定できます。

1 つのクエリまたはユーザーに対してこの設定を変更しても、他のクエリには影響しません。

設定可能な値:

* 正の整数。
* 0 — 制限なし。

**例**

```xml theme={null}
<max_concurrent_queries_for_all_users>99</max_concurrent_queries_for_all_users>
```

**関連項目**

* [max\_concurrent\_queries](/ja/reference/settings/server-settings/settings#max_concurrent_queries)

Cloud でのデフォルト値: `1000`。

<div id="max_concurrent_queries_for_user">
  ## max\_concurrent\_queries\_for\_user
</div>

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

ユーザーごとに同時実行できるクエリの最大数です。

設定可能な値:

* 正の整数。
* 0 — 制限なし。

**例**

```xml theme={null}
<max_concurrent_queries_for_user>5</max_concurrent_queries_for_user>
```

<div id="max_consume_snapshots">
  ## max\_consume\_snapshots
</div>

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

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

1 回のインクリメンタル読み取りで消費する Paimon スナップショットの最大数。0 は無制限を意味します。

<div id="max_distributed_connections">
  ## max\_distributed\_connections
</div>

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

単一の分散テーブルに対する1つのクエリの分散処理において、リモートサーバーとの同時接続数の上限です。値は、クラスター内のサーバー数以上に設定することを推奨します。

以下のパラメータは、分散テーブルの作成時 (およびサーバーの起動時) にのみ使用されるため、実行時に変更する必要はありません。

<div id="max_distributed_depth">
  ## max\_distributed\_depth
</div>

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

[Distributed](/ja/reference/engines/table-engines/special/distributed) テーブルに対する再帰クエリの最大深さを制限します。

この値を超えると、サーバーで例外がスローされます。

設定可能な値:

* 正の整数。
* 0 — 深さは無制限。

<div id="max_download_buffer_size">
  ## max\_download\_buffer\_size
</div>

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

各スレッドごとの並列ダウンロード用バッファ (例: URL engine) の最大サイズ。

<div id="max_download_threads">
  ## max\_download\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="4" />

データをダウンロードするためのスレッドの最大数です (例: URL engine) 。

<div id="max_estimated_execution_time">
  ## max\_estimated\_execution\_time
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "max_execution_time と max_estimated_execution_time を分離"}]}]} />

秒単位で指定する、クエリの推定実行時間の上限です。各データブロックについて、
[`timeout_before_checking_execution_speed`](/ja/reference/settings/session-settings#timeout_before_checking_execution_speed)
が経過するたびにチェックされます。

<div id="max_execution_speed">
  ## max\_execution\_speed
</div>

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

1 秒あたりの実行行数の上限です。各データブロックごとに、
[`timeout_before_checking_execution_speed`](/ja/reference/settings/session-settings#timeout_before_checking_execution_speed)
が経過するとチェックされます。実行速度が高すぎる場合は、実行速度が抑制されます。

<div id="max_execution_speed_bytes">
  ## max\_execution\_speed\_bytes
</div>

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

1 秒あたりの実行バイト数の上限です。各データブロックで
[`timeout_before_checking_execution_speed`](/ja/reference/settings/session-settings#timeout_before_checking_execution_speed)
の期限が切れるたびにチェックされます。実行速度が高すぎる場合は、実行速度が抑制されます。

<div id="max_execution_time">
  ## max\_execution\_time
</div>

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

クエリの最大実行時間 (秒) です。

`max_execution_time` パラメータは、少し理解しにくい場合があります。
これは、現在のクエリ実行速度に対する補間に基づいて動作します
(この動作は [`timeout_before_checking_execution_speed`](/ja/reference/settings/session-settings#timeout_before_checking_execution_speed) で制御されます) 。

ClickHouse は、予測される実行時間が指定された
`max_execution_time` を超える場合、クエリを中断します。デフォルトでは、`timeout_before_checking_execution_speed`
は 10 秒に設定されています。つまり、クエリの実行開始から 10 秒後に、ClickHouse は
合計実行時間の推定を開始します。たとえば、`max_execution_time`
が 3600 秒 (1 時間) に設定されている場合、推定される実行時間がこの 3600 秒の上限を超えると、ClickHouse は
クエリを終了します。`timeout_before_checking_execution_speed`
を 0 に設定すると、ClickHouse は `max_execution_time` の基準として実際の経過時間を使用します。

クエリの実行時間が指定された秒数を超えた場合の動作は、
デフォルトで `throw` に設定されている `timeout_overflow_mode` によって決まります。

<Note>
  タイムアウトがチェックされ、クエリを停止できるのは、データ処理中の決められた箇所だけです。
  現時点では、集約状態のマージ中やクエリ解析中には停止できないため、
  実際の実行時間はこの設定値を上回ります。
</Note>

<div id="max_execution_time_leaf">
  ## max\_execution\_time\_leaf
</div>

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

意味としては [`max_execution_time`](#max_execution_time) に似ていますが、分散クエリまたはリモートクエリのリーフノードにのみ
適用されます。

たとえば、初期ノードには制限を設けず、リーフノードでの実行時間だけを `10s` に制限したい場合は、
ネストされたサブクエリの設定で `max_execution_time` を指定する代わりに、

```sql theme={null}
SELECT count()
FROM cluster(cluster, view(SELECT * FROM t SETTINGS max_execution_time = 10));
```

クエリ設定には `max_execution_time_leaf` を使用できます。

```sql theme={null}
SELECT count()
FROM cluster(cluster, view(SELECT * FROM t)) SETTINGS max_execution_time_leaf = 10;
```

<div id="max_expanded_ast_elements">
  ## max\_expanded\_ast\_elements
</div>

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

別名とアスタリスクを展開した後の、ノード数で表したクエリ構文木の最大サイズ。

<div id="max_fetch_partition_retries_count">
  ## max\_fetch\_partition\_retries\_count
</div>

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

別のホストからパーティションを取得する際の再試行回数。

<div id="max_final_threads">
  ## max\_final\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="'auto(N)'" />

[FINAL](/ja/reference/statements/select/from#final-modifier) 修飾子を使用する `SELECT` クエリのデータ読み取りフェーズで使用される、並列スレッドの最大数を設定します。

設定可能な値:

* 正の整数。
* 0 または 1 — 無効。`SELECT` クエリは単一スレッドで実行されます。

<div id="max_http_get_redirects">
  ## max\_http\_get\_redirects
</div>

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

許可される HTTP GET リダイレクトの最大ホップ数です。悪意のあるサーバーによってリクエストが想定外のサービスへリダイレクトされるのを防ぐための、追加のセキュリティ対策になります。\n\nこれは、外部サーバーが別のアドレスへリダイレクトし、そのアドレスが会社のインフラストラクチャ内部にあるように見える場合に該当します。このとき内部サーバーに HTTP リクエストを送信すると、認証を回避して内部ネットワーク上の内部 API にリクエストしたり、Redis や Memcached などの他のサービスにクエリを送信したりできてしまう可能性があります。内部インフラストラクチャ (localhost で動作しているものを含む) が存在しない場合、またはそのサーバーを信頼している場合は、リダイレクトを許可しても安全です。ただし、URL が HTTPS ではなく HTTP を使用している場合は、リモートサーバーだけでなく、ISP や経路上のすべてのネットワークも信頼する必要がある点に注意してください。

Cloud でのデフォルト値: `10`.

<div id="max_hyperscan_regexp_length">
  ## max\_hyperscan\_regexp\_length
</div>

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

[hyperscan multi-match functions](/ja/reference/functions/regular-functions/string-search-functions#multiMatchAny) における各正規表現の最大長を定義します。

設定可能な値:

* 正の整数。
* 0 - 長さは制限されません。

**例**

クエリ:

```sql theme={null}
SELECT multiMatchAny('abcd', ['ab','bcd','c','d']) SETTINGS max_hyperscan_regexp_length = 3;
```

結果:

```text theme={null}
┌─multiMatchAny('abcd', ['ab', 'bcd', 'c', 'd'])─┐
│                                              1 │
└────────────────────────────────────────────────┘
```

クエリ:

```sql theme={null}
SELECT multiMatchAny('abcd', ['ab','bcd','c','d']) SETTINGS max_hyperscan_regexp_length = 2;
```

結果:

```text theme={null}
Exception: Regexp length too large.
```

**関連項目**

* [max\_hyperscan\_regexp\_total\_length](#max_hyperscan_regexp_total_length)

<div id="max_hyperscan_regexp_total_length">
  ## max\_hyperscan\_regexp\_total\_length
</div>

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

各 [hyperscan multi-match function](/ja/reference/functions/regular-functions/string-search-functions#multiMatchAny) における、すべての正規表現の合計長の上限を設定します。

設定可能な値:

* 正の整数。
* 0 - 長さは制限されません。

**例**

クエリ:

```sql theme={null}
SELECT multiMatchAny('abcd', ['a','b','c','d']) SETTINGS max_hyperscan_regexp_total_length = 5;
```

結果:

```text theme={null}
┌─multiMatchAny('abcd', ['a', 'b', 'c', 'd'])─┐
│                                           1 │
└─────────────────────────────────────────────┘
```

クエリ:

```sql theme={null}
SELECT multiMatchAny('abcd', ['ab','bc','c','d']) SETTINGS max_hyperscan_regexp_total_length = 5;
```

結果:

```text theme={null}
Exception: Total regexp lengths too large.
```

**関連項目**

* [max\_hyperscan\_regexp\_length](#max_hyperscan_regexp_length)

<div id="max_insert_block_size">
  ## max\_insert\_block\_size
</div>

**別名**: `max_insert_block_size_rows`

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

テーブルに挿入するために形成されるブロックの最大サイズ (行数) です。

この設定は、次の 2 つの文脈でのブロック形成を制御します。

1. フォーマットのパース: サーバーが任意のインターフェイス (HTTP、インラインデータを伴う clickhouse-client、gRPC、PostgreSQL ワイヤプロトコル) から行ベースの入力フォーマット (CSV、TSV、JSONEachRow など) をパースする場合、ブロックは次の条件で生成されます:

   * min\_insert\_block\_size\_rows と min\_insert\_block\_size\_bytes の両方に達した場合、または
   * max\_insert\_block\_size\_rows または max\_insert\_block\_size\_bytes のいずれかに達した場合

   注: clickhouse-client または clickhouse-local を使用してファイルから読み取る場合、データのパースはクライアント自体が行うため、この設定はクライアント側に適用されます。

2. INSERT 操作: INSERT クエリの実行中、およびデータが materialized view を通過する際のこの設定の動作は、`use_strict_insert_block_limits` によって決まります:

   * 有効な場合: ブロックは次の条件で生成されます:
     * 最小しきい値 (AND): min\_insert\_block\_size\_rows と min\_insert\_block\_size\_bytes の両方に達した場合
     * 最大しきい値 (OR): max\_insert\_block\_size\_rows または max\_insert\_block\_size\_bytes のいずれかに達した場合

   * 無効な場合: ブロックは min\_insert\_block\_size\_rows または min\_insert\_block\_size\_bytes のいずれかに達した時点で生成されます。max\_insert\_block\_size の設定は適用されません。

設定可能な値:

* 正の整数。

<div id="max_insert_block_size_bytes">
  ## max\_insert\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "Row Input Format でのデータのパース時に、ブロックサイズをバイト単位で制御できる新しい設定。"}]}]} />

テーブルに挿入するために形成されるブロックの最大サイズ (バイト単位) 。

この設定は max\_insert\_block\_size\_rows と組み合わせて動作し、同じコンテキストでブロック形成を制御します。これらの設定がいつ、どのように適用されるかの詳細については、max\_insert\_block\_size\_rows を参照してください。

設定可能な値:

* 正の整数。
* 0 — この設定はブロック形成に関与しません。

<div id="max_insert_delayed_streams_for_parallel_write">
  ## max\_insert\_delayed\_streams\_for\_parallel\_write
</div>

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

最終的な part のフラッシュを遅延させるストリーム (カラム) の最大数です。デフォルトは auto です (基盤となるストレージが並列書き込みをサポートしている場合は 100。たとえば S3。サポートしていない場合は無効です)

Cloud でのデフォルト値: `50`.

<div id="max_insert_threads">
  ## max\_insert\_threads
</div>

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

`INSERT SELECT` クエリの実行に使用するスレッドの最大数です。

設定可能な値:

* 0 (または 1)  — `INSERT SELECT` は並列実行されません。
* 正の整数。1 より大きい値。

Cloud でのデフォルト値:

* メモリ 8 GiB のノードでは `1`
* メモリ 16 GiB のノードでは `2`
* より大きなノードでは `4`

並列 `INSERT SELECT` が有効になるのは、`SELECT` 部分も並列に実行される場合のみです。[`max_threads`](#max_threads) 設定を参照してください。
値を大きくすると、メモリ使用量も増加します。

<div id="max_insert_threads_min_free_memory_per_thread">
  ## max\_insert\_threads\_min\_free\_memory\_per\_thread
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "4294967296"},{"label": "利用可能な空きメモリに基づいて挿入スレッド数を制限するための新しい設定"}]}]} />

`max_threads` ではなく `max_insert_threads` に適用される点を除き、`max_threads_min_free_memory_per_thread` と同じです。デフォルト値が高く設定されているのは、挿入パイプラインでは通常、読み取りパイプラインよりもスレッドごとに大きなバッファ (MergeTree パーツ、圧縮ブロック) を保持するためです。

空きメモリ量が `max_insert_threads` にこの値を掛けた値を下回る場合、`max_insert_threads` は収まるように最小 `1` まで減らされます。

この制限を無効にするには、`0` に設定します。

<div id="max_joined_block_size_bytes">
  ## max\_joined\_block\_size\_bytes
</div>

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

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

JOIN結果の最大blockサイズ (バイト単位) です (join algorithm が対応している場合) 。0 は無制限を意味します。

<div id="max_joined_block_size_rows">
  ## max\_joined\_block\_size\_rows
</div>

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

JOIN結果の最大ブロックサイズ (JOINアルゴリズムが対応している場合) 。0 は無制限を意味します。

<div id="max_limit_for_vector_search_queries">
  ## max\_limit\_for\_vector\_search\_queries
</div>

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

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

この設定値を超える LIMIT を指定した SELECT クエリでは、ベクトル類似度インデックスを使用できません。ベクトル類似度インデックスでのメモリオーバーフローを防ぐのに役立ちます。

<div id="max_local_read_bandwidth">
  ## max\_local\_read\_bandwidth
</div>

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

ローカル読み取りの最大速度 (1秒あたりのバイト数) です。

<div id="max_local_write_bandwidth">
  ## max\_local\_write\_bandwidth
</div>

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

ローカルへの書き込みの最大速度 (1秒あたりのバイト数) 。

<div id="max_memory_usage">
  ## max\_memory\_usage
</div>

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

Cloud でのデフォルト値: レプリカ上の RAM の量によって異なります。

単一サーバー上でクエリを実行する際に使用できる RAM の最大量です。
値 `0` は無制限を意味します。

この設定では、利用可能なメモリ容量やマシン全体のメモリ総量は考慮されません。この制限は、単一サーバー内の単一のクエリに適用されます。

`SHOW PROCESSLIST` を使用すると、各クエリの現在のメモリ消費量を確認できます。
各クエリのピークメモリ消費量は追跡され、ログに書き込まれます。

次の集約関数の `String` および `Array` 引数の状態については、
メモリ使用量は完全には追跡されません。

* `min`
* `max`
* `any`
* `anyLast`
* `argMin`
* `argMax`

メモリ消費量は、[`max_memory_usage_for_user`](/ja/reference/settings/session-settings#max_memory_usage_for_user)
および [`max_server_memory_usage`](/ja/reference/settings/server-settings/settings#max_server_memory_usage)
のパラメータによっても制限されます。

<div id="max_memory_usage_for_user">
  ## max\_memory\_usage\_for\_user
</div>

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

1 台の server 上で、ユーザーのクエリ実行に使用できる RAM の最大量です。0 は無制限を意味します。

デフォルトでは、この値に制限はありません (`max_memory_usage_for_user = 0`) 。

[`max_memory_usage`](/ja/reference/settings/session-settings#max_memory_usage) の説明もあわせて参照してください。

たとえば、`clickhouse_read` という名前のユーザーについて `max_memory_usage_for_user` を 1000 バイトに設定する場合は、次のステートメントを使用できます

```sql theme={null}
ALTER USER clickhouse_read SETTINGS max_memory_usage_for_user = 1000;
```

クライアントからログアウトして再度ログインした後、`getSetting` 関数を使用すると、正しく動作したことを確認できます。

```sql theme={null}
SELECT getSetting('max_memory_usage_for_user');
```

<div id="max_network_bandwidth">
  ## max\_network\_bandwidth
</div>

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

ネットワーク経由のデータ転送速度を、1秒あたりのバイト数で制限します。この設定はすべてのクエリに適用されます。

設定可能な値:

* 正の整数。
* 0 — 帯域幅の制御は無効です。

<div id="max_network_bandwidth_for_all_users">
  ## max\_network\_bandwidth\_for\_all\_users
</div>

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

ネットワーク経由でのデータ転送速度を、1 秒あたりのバイト数で制限します。この設定は、サーバー上で同時実行されているすべてのクエリに適用されます。

設定可能な値:

* 正の整数。
* 0 — データ転送速度の制御は無効です。

<div id="max_network_bandwidth_for_user">
  ## max\_network\_bandwidth\_for\_user
</div>

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

ネットワーク経由のデータ転送速度を、1 秒あたりのバイト数で制限します。この設定は、1 人のユーザーが同時実行するすべてのクエリに適用されます。

設定可能な値:

* 正の整数。
* 0 — データ転送速度の制御は無効です。

<div id="max_network_bytes">
  ## max\_network\_bytes
</div>

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

クエリの実行時に、ネットワーク経由で受信または送信されるデータ量 (バイト単位) を制限します。この設定は、個々のクエリに適用されます。

設定可能な値:

* 正の整数。
* 0 — データ量の制限は無効です。

<div id="max_number_of_partitions_for_independent_aggregation">
  ## max\_number\_of\_partitions\_for\_independent\_aggregation
</div>

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

最適化を適用する対象となるテーブル内のパーティション数の上限

<div id="max_os_cpu_wait_time_ratio_to_throw">
  ## max\_os\_cpu\_wait\_time\_ratio\_to\_throw
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "設定値が変更され、25.4 にバックポートされました"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

クエリの拒否を検討する際に基準とする、OS の CPU 待機時間 (OSCPUWaitMicroseconds メトリクス) とビジー時間 (OSCPUVirtualTimeMicroseconds メトリクス) の最大比率です。確率の計算には最小比率と最大比率の間の線形補間が使用され、この時点で確率は 1 になります。

<div id="max_parallel_replicas">
  ## max\_parallel\_replicas
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "デフォルトでは最大 1000 個の並列レプリカを使用します。"}]}]} />

クエリ実行時に、各分片で使用するレプリカの最大数です。

設定可能な値:

* 正の整数。

**追加情報**

このオプションは、使用する設定によって結果が異なります。

<div id="parallel-processing-using-sample-key">
  ### `SAMPLE` キーを使用した並列処理
</div>

クエリは、複数のサーバーで並列に実行すると、より高速に処理できる場合があります。ただし、次のような場合にはクエリパフォーマンスが低下することがあります。

* パーティション化キー内でのサンプリングキーの位置によっては、効率的な範囲スキャンを行えない。
* テーブルにサンプリングキーを追加すると、他のカラムでのフィルタリング効率が低下する。
* サンプリングキーが、計算コストの高い式である。
* クラスターのレイテンシ分布にロングテールがある場合、より多くのサーバーにクエリを送ると、クエリ全体のレイテンシが増加する。

<div id="parallel-processing-using-parallel_replicas_custom_keyparallel_replicas_custom_key">
  ### [parallel\_replicas\_custom\_key](#parallel_replicas_custom_key) を使用した並列処理
</div>

この設定は、あらゆるレプリケートテーブルで有用です。

<div id="max_parser_backtracks">
  ## max\_parser\_backtracks
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000000"},{"label": "パースの複雑さを制限"}]}]} />

パーサーの最大バックトラック回数 (再帰下降パースの過程で、別の候補を何回試すか) 。

<div id="max_parser_depth">
  ## max\_parser\_depth
</div>

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

再帰下降パーサーの最大再帰深度を制限します。スタックサイズの制御に使用できます。

設定可能な値:

* 正の整数。
* 0 — 再帰深度は無制限です。

<div id="max_parsing_threads">
  ## max\_parsing\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="'auto(N)'" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "0"},{"label": "ファイルからの並列パースにおけるスレッド数を制御するための専用の設定を追加"}]}]} />

並列パースをサポートする入力フォーマットでデータをパースする際の最大スレッド数です。デフォルトでは、自動的に決定されます。

<div id="max_partition_size_to_drop">
  ## max\_partition\_size\_to\_drop
</div>

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

クエリ実行時にパーティションを削除する際の制限です。値 `0` は、制限なくパーティションを削除できることを意味します。

Cloud でのデフォルト値: 1 TB。

<Note>
  このクエリ設定は、対応するサーバー設定を上書きします。詳しくは [max\_partition\_size\_to\_drop](/ja/reference/settings/server-settings/settings#max_partition_size_to_drop) を参照してください
</Note>

<div id="max_partitions_per_insert_block">
  ## max\_partitions\_per\_insert\_block
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.5"},{"label": "100"},{"label": "1つのブロック内のパーティション数の上限を追加"}]}]} />

1つの挿入ブロック内のパーティション数の上限を制限します。
ブロックに含まれるパーティション数が多すぎる場合は、例外がスローされます。

* 正の整数。
* `0` — パーティション数は無制限。

**詳細**

データの挿入時に、ClickHouse は挿入されるブロック内の
パーティション数を計算します。パーティション数が
`max_partitions_per_insert_block` を超えると、
ClickHouse は `throw_on_max_partitions_per_insert_block` の設定に応じて警告をログに記録するか、
例外をスローします。例外メッセージは次のとおりです。

> "単一の INSERT ブロックに対するパーティション数が多すぎます (`partitions_count` 個のパーティション、上限は " + toString(max\_partitions) + ") 。
> 上限は 'max\_partitions\_per\_insert\_block' 設定によって制御されます。
> 大量のパーティションを使用するのは、よくある誤解です。これは深刻な
> パフォーマンス低下を引き起こし、server の起動の遅延、INSERT クエリの低速化、
> および SELECT クエリの低速化につながります。table に推奨されるパーティション総数は
> 1000..10000 未満です。なお、パーティション化は
> SELECT クエリを高速化することを目的としたものではありません (範囲クエリを高速化するには ORDER BY key で十分です) 。
> パーティションはデータ操作 (DROP PARTITION など) のためのものです。"

<Note>
  多数のパーティションを使用するのはよくある誤解であるため、この設定は安全しきい値として機能します。
</Note>

<div id="max_partitions_to_read">
  ## max\_partitions\_to\_read
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

1 回のクエリでアクセスできるパーティションの最大数を制限します。

テーブル作成時に指定した設定値は、クエリレベルの設定で上書きできます。

設定可能な値:

* 正の整数
* `-1` - 無制限 (デフォルト)

<Note>
  この MergeTree 設定 [`max_partitions_to_read`](/ja/reference/settings/session-settings#max_partitions_to_read) は、テーブル設定でも指定できます。
</Note>

<div id="max_parts_to_move">
  ## max\_parts\_to\_move
</div>

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

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

1 回のクエリで移動できるパーツ数を制限します。0 は無制限を意味します。

<div id="max_projection_rows_to_use_projection_index">
  ## max\_projection\_rows\_to\_use\_projection\_index
</div>

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

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

プロジェクション索引から読み取る行数がこのしきい値以下であれば、ClickHouse はクエリ実行時にプロジェクション索引の適用を試みます。

<div id="max_query_size">
  ## max\_query\_size
</div>

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

SQLパーサーが解析するクエリ文字列の最大バイト数です。
INSERT クエリの VALUES 句内のデータは、別個のストリームパーサー (O(1) の RAM を使用) によって処理されるため、この制限の影響を受けません。

<Note>
  ClickHouse はクエリを解析するためのバッファを確保する必要があり、そのバッファサイズは `max_query_size` 設定によって決まります。そのため、`max_query_size` は SQL クエリ内 (例: `SELECT now() SETTINGS max_query_size=10000`) では設定できません。この設定はクエリの実行前に構成しておく必要があります。
</Note>

<div id="max_rand_distribution_parameter">
  ## max\_rand\_distribution\_parameter
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000"},{"label": "極端な入力によるハングを防ぐため、random distribution functions の shape parameter を制限する新しい設定。"}]}]} />

`randChiSquared`、`randStudentT`、`randFisherF` などの random distribution functions における、分布の shape parameter の最大値です。これにより、極端な parameter 値によって計算時間が極端に長くなるのを防ぎます。

<div id="max_rand_distribution_trials">
  ## max\_rand\_distribution\_trials
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000000"},{"label": "極端な入力によるハングを防ぐため、random distribution functions の試行回数を制限する新しい設定。"}]}]} />

`randBinomial` や `randNegativeBinomial` などの random distribution functions で許可される試行回数の最大値です。これにより、試行回数が大きい場合でも計算時間が極端に長くなるのを防ぎます。

<div id="max_read_buffer_size">
  ## max\_read\_buffer\_size
</div>

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

filesystem から読み取る際の buffer の最大サイズ。

<div id="max_read_buffer_size_local_fs">
  ## max\_read\_buffer\_size\_local\_fs
</div>

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

ローカルfilesystemから読み込む際のbufferの最大サイズです。0 に設定すると、max\_read\_buffer\_size が使用されます。

<div id="max_read_buffer_size_remote_fs">
  ## max\_read\_buffer\_size\_remote\_fs
</div>

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

リモートファイルシステムから読み取るためのバッファの最大サイズです。0 に設定した場合は、max\_read\_buffer\_size が使用されます。

<div id="max_recursive_cte_evaluation_depth">
  ## max\_recursive\_cte\_evaluation\_depth
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1000"},{"label": "再帰CTEの評価深度の最大値"}]}]} />

再帰CTEの評価深度の最大値

<div id="max_remote_read_network_bandwidth">
  ## max\_remote\_read\_network\_bandwidth
</div>

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

読み取り時のネットワーク経由のデータ転送の最大速度を、1秒あたりのバイト数で指定します。

<div id="max_remote_write_network_bandwidth">
  ## max\_remote\_write\_network\_bandwidth
</div>

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

書き込み時の、ネットワーク経由のデータ転送の最大速度をバイト/秒で指定します。

<div id="max_replica_delay_for_distributed_queries">
  ## max\_replica\_delay\_for\_distributed\_queries
</div>

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

分散クエリで、遅延しているレプリカを使用しないようにします。[レプリケーション](/ja/reference/engines/table-engines/mergetree-family/replication) を参照してください。

時間を秒単位で設定します。レプリカの遅延が設定値以上の場合、そのレプリカは使用されません。

設定可能な値:

* 正の整数。
* 0 — レプリカの遅延はチェックされません。

遅延が 0 でないレプリカを一切使用しないようにするには、このパラメータを 1 に設定します。

レプリケートテーブルを参照する分散テーブルに対して `SELECT` を実行する際に使用されます。

<div id="max_result_bytes">
  ## max\_result\_bytes
</div>

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

結果サイズをバイト単位 (非圧縮) で制限します。しきい値に達した場合、クエリはデータのブロックを処理し終えた後に停止しますが、
結果の最後のブロックは切り詰められないため、結果サイズがしきい値を超えることがあります。

**注意事項**

このしきい値では、メモリ内の結果サイズが考慮されます。
結果サイズ自体が小さくても、メモリ内のより大きなデータ構造、
つまり LowCardinality カラムの辞書や AggregateFunction カラムのアリーナを参照している場合があるため、
結果サイズが小さくても、しきい値を超えることがあります。

<Warning>
  この設定はかなり低レベルなため、使用には注意してください
</Warning>

<div id="max_result_rows">
  ## max\_result\_rows
</div>

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

Cloud でのデフォルト値: `0`。

結果の行数を制限します。サブクエリに対してもチェックされ、分散クエリの一部を実行する際はリモートサーバー上でもチェックされます。
値が `0` の場合、制限は適用されません。

しきい値に達すると、クエリはデータの block の処理が終わった時点で停止しますが、
結果の最後の block は切り詰められないため、結果サイズが
しきい値を上回ることがあります。

<div id="max_reverse_dictionary_lookup_cache_size_bytes">
  ## max\_reverse\_dictionary\_lookup\_cache\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "104857600"},{"label": "新しい設定。関数 `dictGetKeys` が使用するクエリ単位の逆引き Dictionary ルックアップ cache の最大サイズ（バイト単位）。この cache には、同一クエリ内で Dictionary を再スキャンしないよう、属性値ごとにシリアライズされたキー Tuple が保存されます。"}]}]} />

関数 `dictGetKeys` が使用するクエリ単位の逆引き Dictionary ルックアップ cache の最大サイズ (バイト単位) 。この cache には、同一クエリ内で Dictionary を再スキャンしないよう、属性値ごとにシリアライズされたキー Tuple が保存されます。上限に達すると、エントリは LRU に従って追い出されます。`0` に設定すると cache は無効になります。

<div id="max_rows_for_lazy_final">
  ## max\_rows\_for\_lazy\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "10000000"},{"label": "lazy FINAL 最適化で使用するセット内の最大行数に関する新しい設定"}]}]} />

lazy FINAL 最適化で使用するセット内の最大行数。これを超えると、通常の FINAL にフォールバックします。

<div id="max_rows_in_distinct">
  ## max\_rows\_in\_distinct
</div>

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

DISTINCT 使用時の、異なる行の最大数です。

<div id="max_rows_in_join">
  ## max\_rows\_in\_join
</div>

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

テーブルの結合時に使用されるハッシュテーブル内の行数を制限します。

この設定は、[SELECT ... JOIN](/ja/reference/statements/select/join)
操作および [Join](/ja/reference/engines/table-engines/special/join) テーブルエンジンに適用されます。

1 つのクエリに複数の JOIN が含まれている場合、ClickHouse は中間結果ごとにこの設定を確認します。

制限に達すると、ClickHouse は異なる動作で処理を続行できます。実行する動作は、
[`join_overflow_mode`](/ja/reference/settings/session-settings#join_overflow_mode) 設定で選択します。

設定可能な値:

* 正の整数。
* `0` — 行数は無制限です。

<div id="max_rows_in_set">
  ## max\_rows\_in\_set
</div>

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

サブクエリから作成される IN 句内のデータセットに含められる最大行数。

<div id="max_rows_in_set_to_optimize_join">
  ## max\_rows\_in\_set\_to\_optimize\_join
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "read in order 最適化を妨げるため、join 最適化を無効化"}]}]} />

結合前に、互いの行セットを使って結合対象のテーブルを絞り込む際の Set の最大サイズ。

設定可能な値:

* 0 — 無効化します。
* 任意の正の整数。

<div id="max_rows_to_group_by">
  ## max\_rows\_to\_group\_by
</div>

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

集約によって取得される一意なキーの最大数です。この設定を使用すると、
集約時のメモリ消費量を制限できます。

GROUP BY 中の集約で、指定した数を超える
行 (一意な GROUP BY キー) が生成される場合、動作は
'group\_by\_overflow\_mode' によって決まります。デフォルトでは `throw` ですが、
近似 GROUP BY モードに切り替えることもできます。

<div id="max_rows_to_read">
  ## max\_rows\_to\_read
</div>

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

クエリの実行時に、テーブルから読み取れる行数の最大値です。
この制限は、処理される各 chunk ごとにチェックされ、最も深いテーブル式に対してのみ適用されます。また、リモートサーバーから読み取る場合は、リモートサーバー側でのみチェックされます。

<div id="max_rows_to_read_leaf">
  ## max\_rows\_to\_read\_leaf
</div>

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

分散クエリの実行時に、リーフノード上のローカルテーブルから読み取ることができる最大行数です。分散クエリでは各分片 (リーフ) に対して複数のサブクエリを発行できますが、この制限が確認されるのはリーフノードでの読み取り段階のみで、ルートノードで結果をマージする段階では無視されます。

たとえば、あるクラスターが 2 つの分片で構成され、各分片に 100 行のテーブルがあるとします。両方のテーブルからすべてのデータを読み取る分散クエリは、`max_rows_to_read=150` を設定すると失敗します。合計で 200 行になるためです。`max_rows_to_read_leaf=150` を指定したクエリは成功します。各リーフノードで読み取るのは最大でも 100 行だからです。

この制限は、処理されるデータの各 chunk ごとに確認されます。

<Note>
  この設定は `prefer_localhost_replica=1` と併用すると不安定です。
</Note>

<div id="max_rows_to_sort">
  ## max\_rows\_to\_sort
</div>

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

ソート前に処理できる行数の上限です。これにより、ソート時のメモリ消費を制限できます。
ORDER BY 操作で指定した数を超えるレコードを処理する必要がある場合、
その動作は `sort_overflow_mode` によって決まり、デフォルトでは `throw` に設定されています。

<div id="max_rows_to_transfer">
  ## max\_rows\_to\_transfer
</div>

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

GLOBAL IN/JOIN セクションの実行時に、リモートサーバーに渡したり、一時テーブルに保存したりできる最大サイズ (行数) 。

<div id="max_sessions_for_user">
  ## max\_sessions\_for\_user
</div>

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

認証済みユーザーごとに ClickHouse server で同時に使用できるセッションの最大数です。

例:

```xml theme={null}
<profiles>
    <single_session_profile>
        <max_sessions_for_user>1</max_sessions_for_user>
    </single_session_profile>
    <two_sessions_profile>
        <max_sessions_for_user>2</max_sessions_for_user>
    </two_sessions_profile>
    <unlimited_sessions_profile>
        <max_sessions_for_user>0</max_sessions_for_user>
    </unlimited_sessions_profile>
</profiles>
<users>
    <!-- ユーザーAliceはClickHouseサーバーに同時に接続できるのは1回までです。 -->
    <Alice>
        <profile>single_session_user</profile>
    </Alice>
    <!-- ユーザーBobは同時に2つのセッションを使用できます。 -->
    <Bob>
        <profile>two_sessions_profile</profile>
    </Bob>
    <!-- ユーザーCharlesは同時セッション数に制限なく使用できます。 -->
    <Charles>
        <profile>unlimited_sessions_profile</profile>
    </Charles>
</users>
```

設定可能な値:

* 正の整数
* `0` - 同時セッション数は無制限 (デフォルト)

<div id="max_size_to_preallocate_for_aggregation">
  ## max\_size\_to\_preallocate\_for\_aggregation
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1000000000000"},{"label": "大きなテーブル向けの最適化を有効にします。"}]}, {"id": "row-2","items": [{"label": "22.12"},{"label": "100000000"},{"label": "パフォーマンスを最適化します"}]}]} />

集約前に、すべてのハッシュテーブルで合計して事前確保できる要素数

<div id="max_size_to_preallocate_for_joins">
  ## max\_size\_to\_preallocate\_for\_joins
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "100000000"},{"label": "新しい設定"}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "1000000000000"},{"label": "より大きなテーブル向けの最適化を有効にします。"}]}]} />

JOIN の前に、すべてのハッシュテーブル全体で合計何要素まで領域を事前確保できるか

<div id="max_skip_unavailable_shards_num">
  ## max\_skip\_unavailable\_shards\_num
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "skip_unavailable_shards が有効な場合に、エラーを出さずにスキップできる分片数を制限する新しい設定。"}]}]} />

`skip_unavailable_shards` が有効な場合、エラーを出さずにスキップできる分片の最大数を制限します。
利用できない分片の数がこの値を超えると、エラーを出さずにスキップする代わりに例外がスローされます。

値が 0 の場合は制限なしを意味します (既定の動作では、利用できないすべての分片をスキップできます) 。

<div id="max_skip_unavailable_shards_ratio">
  ## max\_skip\_unavailable\_shards\_ratio
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "skip_unavailable_shards が有効な場合に、暗黙的にスキップできる分片の比率を制限する新しい設定。"}]}]} />

`skip_unavailable_shards` が有効な場合、暗黙的にスキップできる分片の最大比率 (0～1) を制限します。
使用不可の分片の総分片数に対する比率がこの値を超えると、暗黙的にスキップする代わりに例外がスローされます。

値が 0 の場合は制限がないことを意味します (デフォルトの動作では、使用不可の分片をすべてスキップできます) 。

<div id="max_streams_for_files_processing_in_cluster_functions">
  ## max\_streams\_for\_files\_processing\_in\_cluster\_functions
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "*Cluster table functions* でのファイル処理のストリーム数を制限できる新しい設定を追加"}]}]} />

0 以外の場合、*Cluster table functions* でファイルからデータを読み取るスレッド数を制限します。

<div id="max_streams_for_merge_tree_reading">
  ## max\_streams\_for\_merge\_tree\_reading
</div>

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

0 以外の場合、MergeTree テーブルの読み取りストリーム数を制限します。

<div id="max_streams_for_union_step">
  ## max\_streams\_for\_union\_step
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "ピークメモリ使用量を削減するため、`UNION` ステップで同時にアクティブにできるデータストリーム数を制限する新しい設定。"}]}]} />

`UNION` ステップで同時にアクティブになるデータストリーム数を制限します (`UNION DISTINCT` は `UNION ALL` ステップの後に `DISTINCT` ステップを続ける形で実装されているため、`UNION ALL` と `UNION DISTINCT` の両方に適用されます) 。`UNION` クエリに多数のサブクエリがある場合、それらはすべて同時に読み取りバッファを開くため、メモリ使用量はサブクエリ数に比例して増加します。この設定では `Concat` プロセッサを挿入してパイプラインの幅を絞り、同時にアクティブなストリーム数を最大でこの値までに抑えることで、ピークメモリを大幅に削減します。実際の上限は、この値と `max_threads * max_streams_for_union_step_to_max_threads_ratio` の小さい方です (いずれかが 0 の場合は無視されます) 。両方が 0 の場合、パイプラインの絞り込みは適用されません。

<div id="max_streams_for_union_step_to_max_threads_ratio">
  ## max\_streams\_for\_union\_step\_to\_max\_threads\_ratio
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "8"},{"label": "新しい設定: UNION ステップで同時にアクティブなストリーム数の上限は、min(max_streams_for_union_step, max_threads * max_streams_for_union_step_to_max_threads_ratio) として計算されます。いずれかが 0 の場合、その制限は無効になります。"}]}]} />

この比率に `max_threads` を掛けた値によって、`UNION` ステップで同時にアクティブにできるストリーム数の上限が決まります (`UNION ALL` と `UNION DISTINCT` の両方に適用されます) 。実際の上限は、この計算値と `max_streams_for_union_step` のうち小さい方です (どちらか一方が 0 の場合は無視されます) 。たとえば、`max_threads = 8` でこの比率を 1 に設定すると、アクティブになるストリームは最大 8 個です。この比率ベースの上限を無効にするには、0 に設定します。

<div id="max_streams_multiplier_for_merge_tables">
  ## max\_streams\_multiplier\_for\_merge\_tables
</div>

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

Merge テーブルから読み取る際に、より多くのストリームを要求します。ストリームは、Merge テーブルが使用する各テーブルに分散されます。これにより、作業をスレッド間でより均等に分散でき、特に構成テーブルのサイズが異なる場合に効果的です。

<div id="max_streams_to_max_threads_ratio">
  ## max\_streams\_to\_max\_threads\_ratio
</div>

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

スレッド数を超える数のソースを使用できるようにし、処理を各スレッドにより均等に分散できるようにします。これは一時的な対策であることを前提としています。将来的には、ソース数をスレッド数と同じにしたうえで、各ソースが利用可能な処理を動的に選択できるようになるためです。

<div id="max_subquery_depth">
  ## max\_subquery\_depth
</div>

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

クエリに、指定した数を超えるネストしたサブクエリがある場合、
例外をスローします。

<Tip>
  これにより、クラスターのユーザーが過度に複雑なクエリを記述するのを防ぐための
  妥当性チェックを行えます。
</Tip>

<div id="max_table_size_to_drop">
  ## max\_table\_size\_to\_drop
</div>

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

クエリ実行時にテーブルを削除する際の制限です。値 `0` は、制限なくすべてのテーブルを削除できることを意味します。

Cloud でのデフォルト値: 1 TB。

<Note>
  このクエリ設定は、対応するサーバー設定を上書きします。詳しくは [max\_table\_size\_to\_drop](/ja/reference/settings/server-settings/settings#max_table_size_to_drop) を参照してください
</Note>

<div id="max_temporary_columns">
  ## max\_temporary\_columns
</div>

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

クエリの実行時に、定数カラムを含めて同時に RAM に保持される一時カラムの最大数です。中間計算の結果として、クエリがメモリ内に指定された数を超える一時カラムを生成した場合は、例外が発生します。

<Tip>
  この設定は、過度に複雑なクエリを防ぐのに役立ちます。
</Tip>

`0` は無制限を意味します。

<div id="max_temporary_data_on_disk_size_for_query">
  ## max\_temporary\_data\_on\_disk\_size\_for\_query
</div>

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

同時実行されているすべてのクエリにおいて、ディスク上の一時ファイルが消費するデータ量の上限 (バイト単位) 。

設定可能な値:

* 正の整数。
* `0` — 無制限 (デフォルト)

<div id="max_temporary_data_on_disk_size_for_user">
  ## max\_temporary\_data\_on\_disk\_size\_for\_user
</div>

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

同時実行中のすべてのユーザークエリにおいて、ディスク上の一時ファイルが消費できるデータ量の上限 (バイト単位) 。

設定可能な値:

* 正の整数。
* `0` — 無制限 (デフォルト)

<div id="max_temporary_non_const_columns">
  ## max\_temporary\_non\_const\_columns
</div>

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

`max_temporary_columns` と同様に、クエリ実行時に定数カラムを除いて、同時に RAM に保持する必要がある一時カラムの最大数を指定します。

<Note>
  定数カラムはクエリ実行時にかなり頻繁に生成されますが、必要な計算リソースはほぼゼロです。
</Note>

<div id="max_threads">
  ## max\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="'auto(N)'" />

リモートサーバーからデータを取得するためのスレッド (['max\_distributed\_connections'](/ja/reference/settings/session-settings#max_distributed_connections) パラメータを参照) を除く、クエリ処理スレッドの最大数です。

このパラメータは、クエリ処理パイプラインの同じ段階を並列に実行するスレッドに適用されます。
たとえば、テーブルの読み取り時に、少なくとも 'max\_threads' 個のスレッドを使って、関数を含む式の評価、`WHERE` によるフィルタリング、`GROUP BY` の事前集約を並列に実行できる場合は、'max\_threads' が使用されます。

LIMIT によってすぐに完了するクエリでは、'max\_threads' をより小さく設定できます。
たとえば、必要な数のエントリがすべてのブロックに存在し、max\_threads = 8 の場合、実際には 1 ブロックだけ読めば十分であっても、8 ブロックが取得されます。
`max_threads` の値が小さいほど、消費メモリは少なくなります。

`max_threads` 設定のデフォルト値は、ClickHouse で利用可能なハードウェアスレッド数 (CPU コア数) に一致します。
特別なケースとして、32 CPU コア未満で SMT (例: Intel HyperThreading) を備えた x86 プロセッサでは、ClickHouse はデフォルトで論理コア数 (= 物理コア数 x 2) を使用します。

SMT (例: Intel HyperThreading) がない場合、これは CPU コア数に対応します。

ClickHouse Cloud ユーザーの場合、デフォルト値は `auto(N)` と表示され、N はサービスの vCPU サイズ (たとえば 2vCPU/8GiB、4vCPU/16GiB など) に一致します。
すべてのサービスサイズの一覧は、Cloud Console の Settings タブを参照してください。

<div id="max_threads_for_indexes">
  ## max\_threads\_for\_indexes
</div>

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

索引の処理に使用するスレッドの最大数です。

<div id="max_threads_min_free_memory_per_thread">
  ## max\_threads\_min\_free\_memory\_per\_thread
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1073741824"},{"label": "利用可能な空きメモリに基づいてスレッド数を制限するための新しい設定"}]}]} />

サーバーがメモリ逼迫状態にある場合、`max_threads` を引き下げ、メモリ制限に達する可能性が高い高並列のクエリが開始されるのを防ぎます。

空きメモリは、サーバーの `max_server_memory_usage` から、グローバルメモリトラッカーによって現在追跡されているメモリ使用量を差し引いて算出されます。この空きメモリが `max_threads` にこの値を掛けた値より少ない場合、`N * value <= free_memory` を満たす最大の N になるように `max_threads` が減らされます。最小値は `1` です。

この制限を無効にするには、`0` に設定します。

たとえば、デフォルト値の 1 GiB で空きメモリが 32 GiB の場合、`max_threads` の上限は 32 になります。空きメモリが 1 GiB の場合は 1 まで下がります。

この設定は、読み取り側の並列度 (`SELECT`、`UNION`、`INTERSECT`/`EXCEPT`、および `INSERT ... SELECT` の `SELECT` 側) に適用されます。書き込み側については、`max_insert_threads_min_free_memory_per_thread` を参照してください。

<div id="max_untracked_memory">
  ## max\_untracked\_memory
</div>

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

小さな割り当てと解放はスレッドローカル変数にまとめられ、その量 (絶対値) が指定した値を超えた場合にのみ追跡またはプロファイルされます。値が 'memory\_profiler\_step' より大きい場合は、実質的に 'memory\_profiler\_step' まで引き下げられます。

<div id="max_wkb_geometry_elements">
  ## max\_wkb\_geometry\_elements
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000"},{"label": "不正なデータによる過剰なメモリ割り当てを防ぐため、WKB geometry のパース時の要素数を制限する新しい設定。"}]}]} />

`readWKB` および関連関数でのパース時に、1 つの WKB geometry 要素内で許可される point、ring、または Polygon の最大数です。これにより、不正な WKB データによる過剰なメモリ割り当てを防ぎます。ハードコードされた上限 (1 億) を使用するには、0 に設定します。

<div id="memory_overcommit_ratio_denominator">
  ## memory\_overcommit\_ratio\_denominator
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.5"},{"label": "1073741824"},{"label": "メモリオーバーコミット機能がデフォルトで有効化されました"}]}]} />

これは、グローバルレベルでハード制限に達したときのソフトメモリ制限を表します。
この値は、クエリの overcommit ratio を算出するために使用されます。
0 は、そのクエリをスキップすることを意味します。
詳細は、[メモリオーバーコミット](/ja/concepts/features/configuration/settings/memory-overcommit)を参照してください。

<div id="memory_overcommit_ratio_denominator_for_user">
  ## memory\_overcommit\_ratio\_denominator\_for\_user
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.5"},{"label": "1073741824"},{"label": "デフォルトでメモリオーバーコミット機能を有効にする"}]}]} />

これは、ユーザーレベルでハード制限に達したときのソフトメモリ制限を表します。
この値は、クエリのオーバーコミット比率の計算に使用されます。
0 は、そのクエリをスキップすることを意味します。
[メモリオーバーコミット](/ja/concepts/features/configuration/settings/memory-overcommit)の詳細を参照してください。

<div id="memory_profiler_sample_max_allocation_size">
  ## memory\_profiler\_sample\_max\_allocation\_size
</div>

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

指定した値以下のサイズのランダムな割り当てを、`memory_profiler_sample_probability` と同じ確率で収集します。0 は無効を意味します。このしきい値が想定どおりに機能するよう、'max\_untracked\_memory' を 0 に設定するとよい場合があります。

<div id="memory_profiler_sample_min_allocation_size">
  ## memory\_profiler\_sample\_min\_allocation\_size
</div>

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

指定した値以上のサイズの割り当てを、`memory_profiler_sample_probability` で指定した確率でランダムに収集します。0 は無効です。このしきい値が想定どおりに機能するように、`max_untracked_memory` を 0 に設定することをおすすめします。

<div id="memory_profiler_sample_probability">
  ## memory\_profiler\_sample\_probability
</div>

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

ランダムな割り当てと解放を収集し、trace\_type が 'MemorySample' のものとして system.trace\_log に書き込みます。この確率は、割り当てサイズに関係なく、すべての alloc/free に対して適用されます (`memory_profiler_sample_min_allocation_size` と `memory_profiler_sample_max_allocation_size` で変更できます) 。サンプリングは、未追跡メモリ量が 'max\_untracked\_memory' を超えた場合にのみ行われる点に注意してください。より細かい粒度でサンプリングしたい場合は、'max\_untracked\_memory' を 0 に設定するとよいでしょう。

<div id="memory_profiler_step">
  ## memory\_profiler\_step
</div>

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

メモリプロファイラのステップを設定します。クエリのメモリ使用量がバイト数で次の各ステップを超えるたびに、メモリプロファイラは割り当て時のスタックトレースを収集し、[trace\_log](/ja/reference/system-tables/trace_log) に書き込みます。

設定可能な値:

* 正の整数 (バイト数) 。

* メモリプロファイラを無効にする場合は 0。

<div id="memory_tracker_fault_probability">
  ## memory\_tracker\_fault\_probability
</div>

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

`exception safety` をテストするための設定です。指定した確率で、メモリを割り当てるたびに例外をスローします。

<div id="memory_usage_overcommit_max_wait_microseconds">
  ## memory\_usage\_overcommit\_max\_wait\_microseconds
</div>

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

ユーザーレベルでメモリオーバーコミットが発生した場合に、メモリが解放されるまでスレッドが待機する最大時間です。
タイムアウトに達してもメモリが解放されない場合は、例外がスローされます。
詳しくは、[メモリオーバーコミット](/ja/concepts/features/configuration/settings/memory-overcommit)を参照してください。

<div id="merge_table_max_tables_to_look_for_schema_inference">
  ## merge\_table\_max\_tables\_to\_look\_for\_schema\_inference
</div>

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

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

明示的なスキーマを指定せずに`Merge`テーブルを作成する場合、または`merge`テーブル関数を使用する場合、スキーマは一致するテーブルのうち、指定した数を超えない範囲でユニオンとして推論されます。
テーブル数がそれを超える場合、スキーマは先頭から指定した数のテーブルに基づいて推論されます。

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

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

データを検索する際、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>

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

ClickHouse Cloud でのみ有効です。並列読み取りと prefetch をサポートする multibuffer reader を使用するために必要な、MergeTree テーブルの compact パーツ内のストライプあたりの granules 数です。remote fs から読み取る場合、multibuffer reader を使用すると読み取りリクエスト数が増加します。

<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_max_bytes_to_use_cache">
  ## merge\_tree\_max\_bytes\_to\_use\_cache
</div>

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

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

非圧縮ブロックのキャッシュには、クエリ用に抽出されたデータが格納されます。ClickHouse は、このキャッシュを使用して、繰り返し実行される小規模なクエリへの応答を高速化します。この設定は、大量のデータを読み取るクエリによってキャッシュが不要に消費されるのを防ぎます。[uncompressed\_cache\_size](/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](/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](/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](/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 は余分な seek を避けるため、両方のブロックを含むファイル範囲を連続して読み取ります。

設定可能な値:

* 任意の正の整数。

<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": "新しい設定"}]}]} />

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

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

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

[MergeTree](/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](/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 におけるデシリアライゼーション用プレフィックス cache の使用を制御する新しい設定"}]}]} />

MergeTree でリモートディスクから読み取る際に、ファイルのプレフィックスに含まれるカラムメタデータの cache を有効にします。

<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 では JSON 型および Dynamic 型に対して、V2 ではなく V1 シリアライゼーション バージョンが使用されます。この設定の変更は、サーバーの再起動後にのみ反映されます。

<div id="metrics_perf_events_enabled">
  ## metrics\_perf\_events\_enabled
</div>

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

有効にすると、一部の perf イベントがクエリの実行中を通して計測されます。

<div id="metrics_perf_events_list">
  ## metrics\_perf\_events\_list
</div>

クエリの実行中を通して測定される perf メトリクスのカンマ区切りリストです。空の場合は、すべてのイベントが対象になります。利用可能なイベントについては、sources 内の PerfEventInfo を参照してください。

<div id="min_bytes_to_use_direct_io">
  ## min\_bytes\_to\_use\_direct\_io
</div>

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

ストレージディスクへのダイレクト I/O アクセスを使用するために必要な最小データ量です。

ClickHouse は、テーブルからデータを読み取る際にこの設定を使用します。読み取るすべてのデータの合計ストレージ容量が `min_bytes_to_use_direct_io` バイトを超える場合、ClickHouse は `O_DIRECT` オプションを使用してストレージディスクからデータを読み取ります。

設定可能な値:

* 0 — ダイレクト I/O は無効です。
* 正の整数。

<div id="min_bytes_to_use_mmap_io">
  ## min\_bytes\_to\_use\_mmap\_io
</div>

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

これは実験的な設定です。カーネルからユーザー空間へデータをコピーせずに大きなファイルを読み込むための最小メモリ量を設定します。[mmap/munmap](https://en.wikipedia.org/wiki/Mmap) は低速なため、推奨されるしきい値は約 64 MB です。これは大きなファイルでのみ有効で、データがページキャッシュ上にある場合にのみ効果があります。

設定可能な値:

* 正の整数。
* 0 — 大きなファイルも、カーネルからユーザー空間へデータをコピーする方式でのみ読み込まれます。

<div id="min_chunk_bytes_for_parallel_parsing">
  ## min\_chunk\_bytes\_for\_parallel\_parsing
</div>

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

* 型: unsigned int
* デフォルト値: 1 MiB

各スレッドが並列にパースする最小のchunkサイズ (バイト単位) です。

<div id="min_compress_block_size">
  ## min\_compress\_block\_size
</div>

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

[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブル向けの設定です。クエリ処理時のレイテンシを低減するため、サイズが `min_compress_block_size` 以上の block は、次の mark の書き込み時に圧縮されます。デフォルト値は 65,536 です。

非圧縮データが `max_compress_block_size` 未満の場合、実際の block サイズはこの値以上であり、かつ 1 つの mark 分のデータ量を下回ることはありません。

例を見てみましょう。テーブル作成時に `index_granularity` が 8192 に設定されていたとします。

UInt32 型のカラム (値あたり 4 バイト) を書き込むとします。8192 行を書き込むと、合計で 32 KB のデータになります。min\_compress\_block\_size = 65,536 なので、圧縮 block は 2 つの mark ごとに形成されます。

String 型の URL カラム (値あたり平均 60 バイト) を書き込むとします。8192 行を書き込むと、平均で 500 KB 弱のデータになります。これは 65,536 を超えるため、圧縮 block は mark ごとに形成されます。この場合、ディスクから 1 つの mark の範囲のデータを読み取る際に、余分なデータが展開されることはありません。

<Note>
  これは上級者向けの設定です。ClickHouse を使い始めたばかりであれば、変更しないでください。
</Note>

<div id="min_count_to_compile_aggregate_expression">
  ## min\_count\_to\_compile\_aggregate\_expression
</div>

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

JIT コンパイルを開始するために必要な、同一の集約式の最小回数です。[compile\_aggregate\_expressions](#compile_aggregate_expressions) 設定が有効な場合にのみ機能します。

設定可能な値:

* 正の整数。
* 0 — 同一の集約式は常に JIT コンパイルされます。

<div id="min_count_to_compile_expression">
  ## min\_count\_to\_compile\_expression
</div>

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

同じ式がコンパイルされるまでに必要な最小実行回数。

<div id="min_count_to_compile_sort_description">
  ## min\_count\_to\_compile\_sort\_description
</div>

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

JITコンパイルが行われるまでに同一のソート記述が現れる回数

<div id="min_execution_speed">
  ## min\_execution\_speed
</div>

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

1秒あたりの行数で表される最小実行速度です。各データブロックで
[`timeout_before_checking_execution_speed`](/ja/reference/settings/session-settings#timeout_before_checking_execution_speed)
が経過した時点でチェックされます。実行速度がこれを下回る場合、例外が発生します。

<div id="min_execution_speed_bytes">
  ## min\_execution\_speed\_bytes
</div>

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

1 秒あたりの実行バイト数の最小値です。
[`timeout_before_checking_execution_speed`](/ja/reference/settings/session-settings#timeout_before_checking_execution_speed)
の期限が切れると、各データブロックごとにチェックされます。実行速度がこれを下回る場合は、例外がスローされます。

<div id="min_external_table_block_size_bytes">
  ## min\_external\_table\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "268402944"},{"label": "ブロックのサイズが十分でない場合、外部テーブルに渡すブロックを指定したバイト数になるようにまとめます。"}]}]} />

ブロックのサイズが十分でない場合、外部テーブルに渡すブロックを指定したバイト数になるようにまとめます。

<div id="min_external_table_block_size_rows">
  ## min\_external\_table\_block\_size\_rows
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1048449"},{"label": "ブロックのサイズが十分でない場合、external table に渡すブロックを指定した行数になるようにまとめる"}]}]} />

ブロックのサイズが十分でない場合、external table に渡すブロックを指定した行数になるようにまとめる。

<div id="min_filtered_ratio_for_lazy_final">
  ## min\_filtered\_ratio\_for\_lazy\_final
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0.5"},{"label": "lazy FINAL 最適化を実行するためにフィルタリングされるマークの最小比率に関する新しい設定"}]}]} />

lazy FINAL 最適化において、索引解析によってフィルタリングされるマークの最小比率です。フィルタリングされるマークの割合がこの値未満の場合は、通常の FINAL にフォールバックします。値 `0` を指定すると、このチェックは無効になります。

<div id="min_free_disk_bytes_to_perform_insert">
  ## min\_free\_disk\_bytes\_to\_perform\_insert
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "一時的な書き込みを引き続き許可しつつ、insert 用に一定量の空きディスク容量（バイト数）を確保します。"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "新しい設定。"}]}]} />

insert を実行するために必要な最小の空きディスク容量 (バイト数) 。

<div id="min_free_disk_ratio_to_perform_insert">
  ## insert を実行するための最小空きディスク容量比率
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "一時的な書き込みを許可しつつ、insert によって、ディスク総容量に対する比率で表される一定量の空きディスク容量を維持します。"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "新しい設定"}]}]} />

insert を実行するために必要な最小空きディスク容量の比率です。

<div id="min_free_disk_space_for_temporary_data">
  ## min\_free\_disk\_space\_for\_temporary\_data
</div>

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

外部ソートや集約で使用する一時データの書き込み時に確保しておく最小のディスク空き容量です。

<div id="min_hit_rate_to_use_consecutive_keys_optimization">
  ## min\_hit\_rate\_to\_use\_consecutive\_keys\_optimization
</div>

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

集約における連続キー最適化で使用される cache を有効のまま維持するための最小ヒット率

<div id="min_insert_block_size_bytes">
  ## min\_insert\_block\_size\_bytes
</div>

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

テーブルに挿入する際に形成されるブロックの最小サイズ (バイト単位) 。

この設定は min\_insert\_block\_size\_rows とあわせて機能し、同じコンテキスト (フォーマットのパースと INSERT 操作) でのブロック形成を制御します。これらの設定がいつどのように適用されるかについて詳しくは、min\_insert\_block\_size\_rows を参照してください。

設定可能な値:

* 正の整数。
* 0 — この設定はブロック形成に使用されません。

<div id="min_insert_block_size_bytes_for_materialized_views">
  ## min\_insert\_block\_size\_bytes\_for\_materialized\_views
</div>

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

`INSERT`クエリでテーブルに挿入できるブロックの最小バイト数を設定します。これより小さいブロックは、より大きなブロックにまとめられます。この設定は、[materialized view](/ja/reference/statements/create/view) に挿入されるブロックにのみ適用されます。この設定を調整することで、materialized view への書き込み時のブロックのまとめ方を制御し、過剰なメモリ使用量を回避できます。

設定可能な値:

* 任意の正の整数。
* 0 — まとめる処理は無効です。

**関連項目**

* [min\_insert\_block\_size\_bytes](#min_insert_block_size_bytes)

<div id="min_insert_block_size_rows">
  ## min\_insert\_block\_size\_rows
</div>

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

テーブルに挿入するために形成されるブロックの最小サイズ (行数) です。

この設定は、次の 2 つの文脈におけるブロック形成を制御します。

1. フォーマットのパース: サーバーが任意のインターフェイス (HTTP、インラインデータを使用する clickhouse-client、gRPC、PostgreSQL ワイヤプロトコル) から行ベースの入力フォーマット (CSV、TSV、JSONEachRow など) をパースする際、ブロックは次の場合に出力されます。

   * min\_insert\_block\_size\_rows と min\_insert\_block\_size\_bytes の両方に達した場合、または
   * max\_insert\_block\_size\_rows または max\_insert\_block\_size\_bytes のいずれかに達した場合

   注: clickhouse-client または clickhouse-local を使用してファイルから読み取る場合、データはクライアント自身がパースするため、この設定はクライアント側で適用されます。

2. INSERT 操作: INSERT クエリの実行時、およびデータが materialized view を通過する際、この設定の動作は `use_strict_insert_block_limits` に依存します。

   * 有効な場合: ブロックは次の場合に出力されます。
     * 最小しきい値 (AND) : min\_insert\_block\_size\_rows と min\_insert\_block\_size\_bytes の両方に達したとき
     * 最大しきい値 (OR) : max\_insert\_block\_size\_rows または max\_insert\_block\_size\_bytes のいずれかに達したとき

   * 無効 (デフォルト) の場合: min\_insert\_block\_size\_rows または min\_insert\_block\_size\_bytes に達するとブロックが出力されます。max\_insert\_block\_size の設定は適用されません。

設定可能な値:

* 正の整数。
* 0 — この設定はブロック形成に関与しません。

<div id="min_insert_block_size_rows_for_materialized_views">
  ## min\_insert\_block\_size\_rows\_for\_materialized\_views
</div>

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

`INSERT` クエリでテーブルに挿入できるブロックの最小行数を設定します。これより小さいブロックは、より大きなブロックにまとめられます。この設定は、[materialized view](/ja/reference/statements/create/view) に挿入されるブロックにのみ適用されます。この設定を調整することで、materialized view への書き込み時のブロックのまとめ方を制御し、過剰なメモリ使用量を回避できます。

設定可能な値:

* 任意の正の整数。
* 0 — まとめる処理を無効にします。

**関連項目**

* [min\_insert\_block\_size\_rows](#min_insert_block_size_rows)

<div id="min_joined_block_size_bytes">
  ## min\_joined\_block\_size\_bytes
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "524288"},{"label": "新しい設定"}]}]} />

JOIN の入力ブロックおよび出力ブロックの最小サイズ (バイト単位) です (JOIN アルゴリズムが対応している場合) 。小さいブロックはまとめられます。0 は無制限を意味します。

<div id="min_joined_block_size_rows">
  ## min\_joined\_block\_size\_rows
</div>

<SettingsInfoBlock type="UInt64" default_value="65409" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "65409"},{"label": "新しい設定"}]}]} />

JOIN の入力および出力ブロックの最小行数です (JOINアルゴリズムが対応している場合) 。小さいブロックはまとめられます。0 は無制限を意味します。

<div id="min_os_cpu_wait_time_ratio_to_throw">
  ## min\_os\_cpu\_wait\_time\_ratio\_to\_throw
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "設定値が変更され、25.4 にバックポートされました"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

クエリを拒否するかどうかを判定する際の、OS の CPU 待機時間 (`OSCPUWaitMicroseconds` メトリクス) とビジー時間 (`OSCPUVirtualTimeMicroseconds` メトリクス) の最小比率です。確率の計算には最小比率と最大比率の間で線形補間が使用され、この時点での確率は 0 です。

<div id="min_outstreams_per_resize_after_split">
  ## min\_outstreams\_per\_resize\_after\_split
</div>

<SettingsInfoBlock type="UInt64" default_value="24" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "24"},{"label": "新しい設定"}]}]} />

パイプライン生成時に分割が行われた後の、`Resize` または `StrictResize` プロセッサの出力ストリーム数の最小値を指定します。結果のストリーム数がこの値未満の場合、分割操作は実行されません。

<div id="what-is-a-resize-node">
  ### Resize ノードとは
</div>

`Resize` ノードは、クエリパイプライン内を流れるデータストリームの数を調整するプロセッサです。複数のスレッドやプロセッサにワークロードを均等に配分できるよう、ストリーム数を増やしたり減らしたりできます。たとえば、クエリでより高い並列度が必要な場合、`Resize` ノードは 1 つのストリームを複数のストリームに分割できます。逆に、複数のストリームを少数のストリームにマージして、データ処理を集約することもできます。

`Resize` ノードは、データブロックの構造を維持したまま、データが各ストリームに均等に分散されるようにします。これにより、リソース利用を最適化し、クエリパフォーマンスを向上させることができます。

<div id="why-the-resize-node-needs-to-be-split">
  ### Resize ノードを分割する必要がある理由
</div>

パイプラインの実行中、中央のハブとして機能する `Resize` ノードの ExecutingGraph::Node::status\_mutex では、特にコア数の多い環境で深刻な競合が発生し、この競合によって次のような問題が生じます。

1. ExecutingGraph::updateNode のレイテンシが増加し、クエリパフォーマンスに直接影響します。
2. スピンロック競合 (native\_queued\_spin\_lock\_slowpath) によって CPU サイクルが過剰に浪費され、効率が低下します。
3. CPU 使用率が低下し、並列度とスループットが制限されます。

<div id="how-the-resize-node-gets-split">
  ### Resize ノードがどのように分割されるか
</div>

1. 分割を実行できることを確認するため、出力ストリーム数をチェックします。各分割 processor の出力ストリーム数が、`min_outstreams_per_resize_after_split` のしきい値以上である必要があります。
2. `Resize` ノードは、入力ストリームと出力ストリームの一部をそれぞれ処理する、同数のポートを持つ小さな `Resize` ノードに分割されます。
3. 各グループは独立して処理されるため、ロック競合が軽減されます。

<div id="splitting-resize-node-with-arbitrary-inputsoutputs">
  ### 任意の入出力を持つ Resize ノードの分割
</div>

入出力の数が、分割後の `Resize` ノード数で割り切れない場合には、一部の入力が `NullSource` に接続され、一部の出力が `NullSink` に接続されることがあります。これにより、データフロー全体に影響を与えることなく分割を行えます。

<div id="purpose-of-the-setting">
  ### 設定の目的
</div>

`min_outstreams_per_resize_after_split` 設定は、`Resize` ノードの分割が意味のあるものになるようにし、ストリーム数が少なすぎることで並列処理が非効率になるのを防ぎます。出力ストリーム数の最小値を設けることで、この設定は並列度とオーバーヘッドのバランスを保ち、ストリームの分割やマージを伴うシナリオでクエリ実行を最適化するのに役立ちます。

<div id="disabling-the-setting">
  ### 設定を無効にする
</div>

`Resize` ノードの分割を無効にするには、この設定を 0 にします。これにより、パイプラインの生成時に `Resize` ノードが分割されなくなり、より小さなノードに分けられることなく、元の構造を維持できます。

<div id="min_table_rows_to_use_projection_index">
  ## min\_table\_rows\_to\_use\_projection\_index
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1000000"},{"label": "新しい設定"}]}]} />

テーブルから読み取ると推定される行数がこのしきい値以上である場合、ClickHouse はクエリの実行時にプロジェクション索引の使用を試みます。

<div id="mongodb_throw_on_unsupported_query">
  ## mongodb\_throw\_on\_unsupported\_query
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "1"},{"label": "新しい設定"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "新しい設定"}]}]} />

有効な場合、MongoDB クエリを構築できないとき、MongoDB テーブルはエラーを返します。無効な場合、ClickHouse はテーブル全体を読み込んでローカルで処理します。このオプションは、'allow\_experimental\_analyzer=0' の場合は適用されません。

<div id="move_all_conditions_to_prewhere">
  ## move\_all\_conditions\_to\_prewhere
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

適用可能なすべての条件を WHERE から PREWHERE に移動します

<div id="move_primary_key_columns_to_end_of_prewhere">
  ## move\_primary\_key\_columns\_to\_end\_of\_prewhere
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

主キーカラムを含む PREWHERE 条件を、AND チェーンの末尾に移動します。これらの条件は主キーの解析時に考慮される可能性が高いため、PREWHERE のフィルタリングにはあまり寄与しないと考えられます。

<div id="multiple_joins_try_to_keep_original_names">
  ## multiple\_joins\_try\_to\_keep\_original\_names
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

複数の JOIN の書き換え時に、最上位の式リストに別名を追加しない

<div id="mutations_execute_nondeterministic_on_initiator">
  ## mutations\_execute\_nondeterministic\_on\_initiator
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

`true` の場合、定数の非決定論的関数 (例: `now()` 関数) はイニシエーター上で実行され、`UPDATE` および `DELETE` クエリ内でリテラルに置き換えられます。これにより、定数の非決定論的関数を含む mutation の実行時に、レプリカ間でデータの同期を保つことができます。デフォルト値: `false`。

<div id="mutations_execute_subqueries_on_initiator">
  ## mutations\_execute\_subqueries\_on\_initiator
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

`true` の場合、スカラーサブクエリはイニシエーターで実行され、`UPDATE` および `DELETE` クエリではリテラルに置き換えられます。デフォルト値: `false`。

<div id="mutations_max_literal_size_to_replace">
  ## mutations\_max\_literal\_size\_to\_replace
</div>

<SettingsInfoBlock type="UInt64" default_value="16384" />

`UPDATE` および `DELETE` クエリで置換するシリアライズ済みリテラルの最大サイズ (バイト単位) 。上記 2 つの設定のうち少なくとも 1 つが有効な場合にのみ適用されます。デフォルト値: 16384 (16 KiB) 。

<div id="mutations_sync">
  ## mutations\_sync
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

`ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS` クエリ ([mutations](/ja/reference/statements/alter#mutations)) を同期的に実行できるようにします。

設定可能な値:

| 値   | 説明                                                                                                             |
| --- | -------------------------------------------------------------------------------------------------------------- |
| `0` | ミューテーションは非同期で実行されます。                                                                                           |
| `1` | クエリは、現在のサーバー上ですべてのミューテーションが完了するまで待機します。                                                                        |
| `2` | クエリは、すべてのレプリカ (存在する場合) でのミューテーションが完了するまで待機します。                                                                 |
| `3` | クエリはアクティブなレプリカのみを待機します。`SharedMergeTree` でのみサポートされます。`ReplicatedMergeTree` では `mutations_sync = 2` と同じ動作になります。 |

<div id="mysql_datatypes_support_level">
  ## mysql\_datatypes\_support\_level
</div>

<SettingsInfoBlock type="MySQLDataTypesSupport" default_value="decimal,datetime64,date2Date32" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "decimal,datetime64,date2Date32"},{"label": "最新の MySQL 型マッピングをデフォルトで有効にします。"}]}]} />

MySQL の型を、対応する ClickHouse の型へどのように変換するかを定義します。`decimal`、`datetime64`、`date2Date32`、`date2String` を任意に組み合わせたカンマ区切りのリストで指定します。最新のマッピング (`decimal`、`datetime64`、`date2Date32`) はデフォルトで有効です。

* `decimal`: 精度の範囲内であれば、`NUMERIC` 型と `DECIMAL` 型を `Decimal` に変換します。
* `datetime64`: 精度が `0` でない場合、`DATETIME` 型と `TIMESTAMP` 型を `DateTime` ではなく `DateTime64` に変換します。
* `date2Date32`: `DATE` を `Date` ではなく `Date32` に変換します。`date2String` より優先されます。
* `date2String`: `DATE` を `Date` ではなく `String` に変換します。`datetime64` が優先されます。

<div id="mysql_map_fixed_string_to_text_in_show_columns">
  ## mysql\_map\_fixed\_string\_to\_text\_in\_show\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "ClickHouse を BI ツールに接続するための設定作業を軽減します。"}]}]} />

有効にすると、[FixedString](/ja/reference/data-types/fixedstring) の ClickHouse データ型が [SHOW COLUMNS](/ja/reference/statements/show#show_columns) で `TEXT` として表示されます。

MySQL wire protocol 経由で接続した場合にのみ効果があります。

* 0 - `BLOB` を使用します。
* 1 - `TEXT` を使用します。

<div id="mysql_map_string_to_text_in_show_columns">
  ## mysql\_map\_string\_to\_text\_in\_show\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "ClickHouse を BI ツールに接続するための設定の手間を減らします。"}]}]} />

有効にすると、ClickHouse の [String](/ja/reference/data-types/string) データ型は、[SHOW COLUMNS](/ja/reference/statements/show#show_columns) で `TEXT` として表示されます。

この設定は、MySQL wire protocol 経由で接続した場合にのみ有効です。

* 0 - `BLOB` を使用します。
* 1 - `TEXT` を使用します。

<div id="mysql_max_rows_to_insert">
  ## mysql\_max\_rows\_to\_insert
</div>

<SettingsInfoBlock type="UInt64" default_value="65536" />

MySQL ストレージエンジンの MySQL バッチ挿入における最大行数

<div id="network_compression_method">
  ## network\_compression\_method
</div>

<SettingsInfoBlock type="String" default_value="LZ4" />

クライアント/サーバー間およびサーバー/サーバー間の通信を圧縮するためのコーデックです。

設定可能な値:

* `NONE` — 圧縮しません。
* `LZ4` — LZ4 コーデックを使用します。
* `LZ4HC` — LZ4HC コーデックを使用します。
* `ZSTD` — ZSTD コーデックを使用します。

**関連項目**

* [network\_zstd\_compression\_level](#network_zstd_compression_level)

<div id="network_zstd_compression_level">
  ## network\_zstd\_compression\_level
</div>

<SettingsInfoBlock type="Int64" default_value="1" />

ZSTD の圧縮レベルを調整します。[network\_compression\_method](#network_compression_method) が `ZSTD` に設定されている場合にのみ使用されます。

設定可能な値:

* 1 から 15 までの正の整数。

<div id="normalize_function_names">
  ## normalize\_function\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.3"},{"label": "1"},{"label": "関数名を正規の名称に正規化します。これはプロジェクションのクエリルーティングに必要でした"}]}]} />

関数名を正規の名称に正規化します

<div id="number_of_mutations_to_delay">
  ## number\_of\_mutations\_to\_delay
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

変更済みのテーブルに少なくともその数の未完了のミューテーションがある場合、テーブルのミューテーションを意図的に遅くします。0 - 無効

<div id="number_of_mutations_to_throw">
  ## number\_of\_mutations\_to\_throw
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

mutation 対象のテーブルに、その数以上の未完了の mutation がある場合、'Too many mutations ...' 例外をスローします。0 - 無効

<div id="odbc_bridge_connection_pool_size">
  ## odbc\_bridge\_connection\_pool\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="16" />

ODBC bridge における各接続設定文字列の接続プールサイズ。

<div id="odbc_bridge_use_connection_pooling">
  ## odbc\_bridge\_use\_connection\_pooling
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

ODBC bridge で接続プーリングを使用します。false に設定した場合、毎回新しい接続が作成されます。

<div id="offset">
  ## offset
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

クエリの結果として行を返し始める前に、スキップする行数を設定します。[OFFSET](/ja/reference/statements/select/offset) 句で設定されたオフセットを調整するもので、これら2つの値は合算されます。

設定可能な値:

* 0 — 行はスキップされません。
* 正の整数。

**例**

入力テーブル:

```sql theme={null}
CREATE TABLE test (i UInt64) ENGINE = MergeTree() ORDER BY i;
INSERT INTO test SELECT number FROM numbers(500);
```

クエリ:

```sql theme={null}
SET limit = 5;
SET offset = 7;
SELECT * FROM test LIMIT 10 OFFSET 100;
```

結果:

```text theme={null}
┌───i─┐
│ 107 │
│ 108 │
│ 109 │
└─────┘
```

<div id="opentelemetry_start_keeper_trace_probability">
  ## opentelemetry\_start\_keeper\_trace\_probability
</div>

<SettingsInfoBlock type="FloatAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "auto"},{"label": "新しい設定"}]}]} />

ZooKeeper リクエストに対してトレースを開始する確率です。親トレースの有無は問いません。

設定可能な値:

* 'auto' - opentelemetry\_start\_trace\_probability 設定と同じ
* 0 — トレースは無効
* 0 から 1 — 確率 (例: 1.0 = 常に有効)

<div id="opentelemetry_start_trace_probability">
  ## opentelemetry\_start\_trace\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

ClickHouse が実行されるクエリのトレースを開始する確率を設定します (親の[トレースコンテキスト](https://www.w3.org/TR/trace-context/)が渡されない場合) 。

設定可能な値:

* 0 — すべての実行クエリのトレースが無効になります (親のトレースコンテキストが渡されない場合) 。
* 範囲 \[0..1] の正の浮動小数点数。たとえば、設定値が `0,5` の場合、ClickHouse は平均してクエリの半分でトレースを開始できます。
* 1 — すべての実行クエリのトレースが有効になります。

<div id="opentelemetry_trace_cpu_scheduling">
  ## opentelemetry\_trace\_cpu\_scheduling
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "`cpu_slot_preemption` 機能をトレースするための新しい設定。"}]}]} />

ワークロードのプリエンプティブCPUスケジューリングに関するOpenTelemetryのスパンを収集します。

<div id="opentelemetry_trace_processors">
  ## opentelemetry\_trace\_processors
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

プロセッサの OpenTelemetry span を収集します。

<div id="optimize_aggregation_in_order">
  ## optimize\_aggregation\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブルにおいて、対応する順序でデータを集計する [SELECT](/ja/reference/statements/select) クエリでの [GROUP BY](/ja/reference/statements/select/group-by) 最適化を有効にします。

設定可能な値:

* 0 — `GROUP BY` 最適化は無効です。
* 1 — `GROUP BY` 最適化は有効です。

**関連項目**

* [GROUP BY optimization](/ja/reference/statements/select/group-by#group-by-optimization-depending-on-table-sorting-key)

<div id="optimize_aggregators_of_group_by_keys">
  ## optimize\_aggregators\_of\_group\_by\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

SELECT 句内の GROUP BY キーに対する min/max/any/anyLast 集約関数を省略します

<div id="optimize_and_compare_chain">
  ## optimize\_and\_compare\_chain
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "新しい設定"}]}]} />

フィルタリング性能を高めるため、AND チェーン内の定数比較を補完します。`<`、`<=`、`>`、`>=`、`=` の各演算子と、その組み合わせをサポートします。たとえば、`(a < b) AND (b < c) AND (c < 5)` は `(a < b) AND (b < c) AND (c < 5) AND (b < 5) AND (a < 5)` に展開されます。

<div id="optimize_append_index">
  ## optimize\_append\_index
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

索引条件を追加するために、[制約](/ja/reference/statements/create/table#constraints)を使用します。デフォルトは `false` です。

設定可能な値:

* true, false

<div id="optimize_arithmetic_operations_in_aggregate_functions">
  ## optimize\_arithmetic\_operations\_in\_aggregate\_functions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

算術演算を集約関数の外で行います

<div id="optimize_const_name_size">
  ## optimize\_const\_name\_size
</div>

<SettingsInfoBlock type="Int64" default_value="256" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "256"},{"label": "大きな定数をスカラーに置き換え、その名前としてハッシュを使用します（サイズは名前の長さで推定されます）"}]}]} />

大きな定数をスカラーに置き換え、その名前としてハッシュを使用します (サイズは名前の長さで推定されます) 。

設定可能な値:

* 正の整数 - 名前の最大長、
* 0 — 常に、
* 負の整数 - 適用しない。

<div id="optimize_count_from_files">
  ## optimize\_count\_from\_files
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

さまざまな入力フォーマットのファイルに対する行数カウントの最適化を有効または無効にします。これは、テーブル関数/エンジン `file`/`s3`/`url`/`hdfs`/`azureBlobStorage` に適用されます。

設定可能な値:

* 0 — 最適化は無効です。
* 1 — 最適化は有効です。

<div id="optimize_dictget_tuple_element">
  ## optimize\_dictget\_tuple\_element
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "tupleElement(dictGet(..., tuple_of_attrs, ...), N) を単一属性の dictGet 呼び出しに書き換えます。"}]}]} />

不要な Dictionary 属性の取得を避けるため、`tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2)` を `dictGet('dict', 'b', key)` に書き換えます。位置指定アクセス (`.1`、`.2`、...) と名前付きアクセス (`.b`) をサポートしており、デフォルト引数が定数タプル、または定数のみからなる `tuple(...)` の場合は `dictGetOrDefault` にも適用されます。

<div id="optimize_distinct_in_order">
  ## optimize\_distinct\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

DISTINCT で指定したカラムの一部がソート順のプレフィックスになっている場合に、DISTINCT の最適化を有効にします。たとえば、MergeTree のソートキーや ORDER BY ステートメントのプレフィックスです。

<div id="optimize_distributed_group_by_sharding_key">
  ## optimize\_distributed\_group\_by\_sharding\_key
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

イニシエーターサーバーでの高コストな集約を回避することで、`GROUP BY sharding_key` クエリを最適化します (これにより、イニシエーターサーバーでの当該クエリのメモリ使用量も削減されます) 。

以下の種類のクエリがサポートされています (これらの任意の組み合わせを含む) :

* `SELECT DISTINCT [..., ]sharding_key[, ...] FROM dist`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...]`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY x`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1`
* `SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x`

以下の種類のクエリはサポートされていません (これらの一部は今後サポートされる可能性があります) :

* `SELECT ... GROUP BY sharding_key[, ...] WITH TOTALS`
* `SELECT ... GROUP BY sharding_key[, ...] WITH ROLLUP`
* `SELECT ... GROUP BY sharding_key[, ...] WITH CUBE`
* `SELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1`

設定可能な値:

* 0 — 無効。
* 1 — 有効。

関連項目:

* [distributed\_group\_by\_no\_merge](#distributed_group_by_no_merge)
* [distributed\_push\_down\_limit](#distributed_push_down_limit)
* [optimize\_skip\_unused\_shards](#optimize_skip_unused_shards)

<Note>
  現時点では `optimize_skip_unused_shards` が必要です。これは、将来的にこの設定がデフォルトで有効になる可能性がある一方で、データが Distributed テーブル経由で挿入されている場合、つまり `sharding_key` に従ってデータが分散されている場合にのみ正しく動作するためです。
</Note>

<div id="optimize_dry_run_check_part">
  ## optimize\_dry\_run\_check\_part
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "新しい設定"}]}]} />

有効にすると、`OPTIMIZE ... DRY RUN` は `checkDataPart` を使用して、結果として生成されるマージ済みパートを検証します。チェックに失敗した場合は、例外がスローされます。

<div id="optimize_empty_string_comparisons">
  ## optimize\_empty\_string\_comparisons
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "新しい設定"}]}]} />

`col = ''` や `'' = col` のような式は `empty(col)` に、`col != ''` や `'' != col` は `notEmpty(col)` に変換されます。
ただし、`col` が `String` または `FixedString` 型の場合に限ります。

<div id="optimize_extract_common_expressions">
  ## optimize\_extract\_common\_expressions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "論理積の論理和から共通式を抽出することで、WHERE、PREWHERE、ON、HAVING、QUALIFY の各式を最適化します。"}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "論理積の論理和から共通式を抽出して WHERE、PREWHERE、ON、HAVING、QUALIFY の各式を最適化する設定を導入しました。"}]}]} />

WHERE、PREWHERE、ON、HAVING、QUALIFY の各式において、論理和から共通式を抽出できるようにします。`(A AND B) OR (A AND C)` のような論理式は `A AND (B OR C)` に書き換えられるため、次の最適化に役立つ可能性があります。

* 単純なフィルタ式でのインデックスの活用
* CROSS JOIN から INNER JOIN への最適化

<div id="optimize_functions_to_subcolumns">
  ## optimize\_functions\_to\_subcolumns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1"},{"label": "デフォルトで有効"}]}]} />

一部の関数をサブカラムの読み取りに変換する最適化を有効または無効にします。これにより、読み取るデータ量を削減できます。

以下の関数を変換できます:

* [length](/ja/reference/functions/regular-functions/array-functions#length) を、[size0](/ja/reference/data-types/array#array-size) サブカラムを読み取る形に変換。
* [empty](/ja/reference/functions/regular-functions/array-functions#empty) を、[size0](/ja/reference/data-types/array#array-size) サブカラムを読み取る形に変換。
* [notEmpty](/ja/reference/functions/regular-functions/array-functions#notEmpty) を、[size0](/ja/reference/data-types/array#array-size) サブカラムを読み取る形に変換。
* [isNull](/ja/reference/functions/regular-functions/functions-for-nulls#isNull) を、[null](/ja/reference/data-types/nullable#finding-null) サブカラムを読み取る形に変換。
* [isNotNull](/ja/reference/functions/regular-functions/functions-for-nulls#isNotNull) を、[null](/ja/reference/data-types/nullable#finding-null) サブカラムを読み取る形に変換。
* [count](/ja/reference/functions/aggregate-functions/count) を、[null](/ja/reference/data-types/nullable#finding-null) サブカラムを読み取る形に変換。
* [mapKeys](/ja/reference/functions/regular-functions/tuple-map-functions#mapKeys) を、[keys](/ja/reference/data-types/map#reading-subcolumns-of-map) サブカラムを読み取る形に変換。
* [mapValues](/ja/reference/functions/regular-functions/tuple-map-functions#mapValues) を、[values](/ja/reference/data-types/map#reading-subcolumns-of-map) サブカラムを読み取る形に変換。

設定可能な値:

* 0 — 最適化は無効です。
* 1 — 最適化は有効です。

<div id="optimize_group_by_constant_keys">
  ## optimize\_group\_by\_constant\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.9"},{"label": "1"},{"label": "デフォルトで定数キーの GROUP BY を最適化"}]}]} />

ブロック内のすべてのキーが定数の場合に GROUP BY を最適化します

<div id="optimize_group_by_function_keys">
  ## optimize\_group\_by\_function\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

GROUP BY 句内の他のキーに対する関数を削除します

<div id="optimize_if_chain_to_multiif">
  ## optimize\_if\_chain\_to\_multiif
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

if(cond1, then1, if(cond2, ...)) の連鎖を multiIf に置き換えます。現時点では、数値型に対しては有効ではありません。

<div id="optimize_if_transform_strings_to_enum">
  ## optimize\_if\_transform\_strings\_to\_enum
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

If と Transform の String 型のargumentを enum に置き換えます。分散クエリで整合性のない変更が生じて失敗する可能性があるため、デフォルトでは無効になっています。

<div id="optimize_injective_functions_in_group_by">
  ## optimize\_injective\_functions\_in\_group\_by
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "アナライザで、GROUP BY 句内の単射関数をその引数に置き換える"}]}]} />

GROUP BY 句内の単射関数をその引数に置き換えます

<div id="optimize_injective_functions_inside_uniq">
  ## optimize\_injective\_functions\_inside\_uniq
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

uniq\*() 関数内の単項の単射関数を削除します。

<div id="optimize_inverse_dictionary_lookup">
  ## optimize\_inverse\_dictionary\_lookup
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "新しい設定"}]}]} />

事前計算されたキー候補の集合に対してより高速なルックアップを行うことで、逆引きの Dictionary ルックアップを繰り返し実行するのを防ぎます。

<div id="optimize_min_equality_disjunction_chain_length">
  ## optimize\_min\_equality\_disjunction\_chain\_length
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

式 `expr = x1 OR ... expr = xN` を最適化するために必要な最小長

<div id="optimize_min_inequality_conjunction_chain_length">
  ## optimize\_min\_inequality\_conjunction\_chain\_length
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

式 `expr <> x1 AND ... expr <> xN` を最適化するための最小長

<div id="optimize_move_to_prewhere">
  ## optimize\_move\_to\_prewhere
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

[SELECT](/ja/reference/statements/select) クエリにおける [PREWHERE](/ja/reference/statements/select/prewhere) の自動最適化を有効または無効にします。

[\*MergeTree](/ja/reference/engines/table-engines/mergetree-family) テーブルでのみ有効です。

設定可能な値:

* 0 — `PREWHERE` の自動最適化は無効です。
* 1 — `PREWHERE` の自動最適化は有効です。

<div id="optimize_move_to_prewhere_if_final">
  ## optimize\_move\_to\_prewhere\_if\_final
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

[FINAL](/ja/reference/statements/select/from#final-modifier) 修飾子を使用する [SELECT](/ja/reference/statements/select) クエリで、自動 [PREWHERE](/ja/reference/statements/select/prewhere) 最適化を有効または無効にします。

[\*MergeTree](/ja/reference/engines/table-engines/mergetree-family) テーブルでのみ動作します。

設定可能な値:

* 0 — `FINAL` 修飾子を使用する `SELECT` クエリでの自動 `PREWHERE` 最適化は無効です。
* 1 — `FINAL` 修飾子を使用する `SELECT` クエリでの自動 `PREWHERE` 最適化は有効です。

**関連項目**

* [optimize\_move\_to\_prewhere](#optimize_move_to_prewhere) 設定

<div id="optimize_multiif_to_if">
  ## optimize\_multiif\_to\_if
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

条件が1つしかない 'multiIf' を 'if' に置き換えます。

<div id="optimize_normalize_count_variants">
  ## optimize\_normalize\_count\_variants
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.3"},{"label": "1"},{"label": "既定では、意味的に count() と等価な集約関数を count() に書き換えます"}]}]} />

意味的に count() と等価な集約関数を count() に書き換えます。

<div id="optimize_on_insert">
  ## optimize\_on\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.1"},{"label": "1"},{"label": "ユーザー体験向上のため、デフォルトで INSERT 時のデータ最適化を有効にします"}]}]} />

INSERT 前のデータ変換を有効または無効にします。これは、テーブルエンジンに応じて、この block に対して merge が実行された場合と同様です。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

**例**

有効時と無効時の違い:

クエリ:

```sql theme={null}
SET optimize_on_insert = 1;

CREATE TABLE test1 (`FirstTable` UInt32) ENGINE = ReplacingMergeTree ORDER BY FirstTable;

INSERT INTO test1 SELECT number % 2 FROM numbers(5);

SELECT * FROM test1;

SET optimize_on_insert = 0;

CREATE TABLE test2 (`SecondTable` UInt32) ENGINE = ReplacingMergeTree ORDER BY SecondTable;

INSERT INTO test2 SELECT number % 2 FROM numbers(5);

SELECT * FROM test2;
```

結果:

```text theme={null}
┌─FirstTable─┐
│          0 │
│          1 │
└────────────┘

┌─SecondTable─┐
│           0 │
│           0 │
│           0 │
│           1 │
│           1 │
└─────────────┘
```

この設定は、[materialized view](/ja/reference/statements/create/view#materialized-view)の動作にも影響することに注意してください。

<div id="optimize_or_like_chain">
  ## optimize\_or\_like\_chain
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

複数の OR LIKE を `multiMatchAny` に最適化します。この最適化は、場合によっては索引解析を妨げるため、デフォルトで有効にすべきではありません。

<div id="optimize_qbit_distance_function_reads">
  ## optimize\_qbit\_distance\_function\_reads
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "新しい設定"}]}]} />

`QBit` データ型に対する距離関数を、計算に必要なカラムだけをストレージから読み取る等価な関数に置き換えます。

<div id="optimize_read_in_order">
  ## optimize\_read\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブルからデータを読み取る際に、[SELECT](/ja/reference/statements/select) クエリでの [ORDER BY](/ja/reference/statements/select/order-by#optimization-of-data-reading) 最適化を有効にします。

設定可能な値:

* 0 — `ORDER BY` の最適化は無効です。
* 1 — `ORDER BY` の最適化は有効です。

**関連項目**

* [ORDER BY 句](/ja/reference/statements/select/order-by#optimization-of-data-reading)

<div id="optimize_redundant_functions_in_order_by">
  ## optimize\_redundant\_functions\_in\_order\_by
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

引数がすでに ORDER BY に含まれている場合は、ORDER BY から関数を削除します

<div id="optimize_respect_aliases">
  ## optimize\_respect\_aliases
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

true に設定すると、WHERE/GROUP BY/ORDER BY で別名が尊重されます。これにより、パーティションプルーニング、セカンダリ索引、optimize\_aggregation\_in\_order、optimize\_read\_in\_order、optimize\_trivial\_count の最適化に役立ちます

<div id="optimize_rewrite_aggregate_function_with_if">
  ## optimize\_rewrite\_aggregate\_function\_with\_if
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

引数に `if` 式を含む集約関数を、論理的に等価な場合は書き換えます。
たとえば、`avg(if(cond, col, null))` は `avgOrNullIf(cond, col)` に書き換えられます。これにより、パフォーマンスが向上する可能性があります。

<Note>
  アナライザ (`enable_analyzer = 1`) が有効な場合にのみサポートされます。
</Note>

<div id="optimize_rewrite_array_exists_to_has">
  ## optimize\_rewrite\_array\_exists\_to\_has
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "書き換え前に型の互換性がチェックされるようになったため、arrayExists から has への書き換え最適化はデフォルトで有効です。"}]}]} />

論理的に等価な場合、arrayExists() 関数を has() に書き換えます。たとえば、arrayExists(x -> x = 1, arr) は has(arr, 1) に書き換えられます

<div id="optimize_rewrite_like_perfect_affix">
  ## optimize\_rewrite\_like\_perfect\_affix
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "新しい設定"}]}]} />

完全なプレフィックスまたは接尾辞を含む LIKE 式 (例: `col LIKE 'ClickHouse%'`) を、startsWith または endsWith 関数 (例: `startsWith(col, 'ClickHouse')`) に書き換えます。

<div id="optimize_rewrite_regexp_functions">
  ## optimize\_rewrite\_regexp\_functions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "新しい設定"}]}]} />

正規表現関連の関数を、よりシンプルで効率的な形式に書き換えます

<div id="optimize_rewrite_sum_if_to_count_if">
  ## optimize\_rewrite\_sum\_if\_to\_count\_if
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "アナライザでのみ利用可能で、その場合に正しく動作します"}]}]} />

論理的に等価な場合、sumIf() および sum(if()) 関数を countIf() 関数に書き換えます

<div id="optimize_skip_merged_partitions">
  ## optimize\_skip\_merged\_partitions
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

level > 0 のパートが 1 つだけで、その有効期限 (TTL) が切れていない場合に、[OPTIMIZE TABLE ... FINAL](/ja/reference/statements/optimize) クエリの最適化を有効または無効にします。

* `OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1`

デフォルトでは、`OPTIMIZE TABLE ... FINAL` クエリは、パートが 1 つしかない場合でもそのパートを再書き込みします。

設定可能な値:

* 1 - 最適化を有効にします。
* 0 - 最適化を無効にします。

<div id="optimize_skip_unused_shards">
  ## optimize\_skip\_unused\_shards
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

`WHERE/PREWHERE` にシャーディングキー条件を含む [SELECT](/ja/reference/statements/select) クエリについて、未使用の分片のスキップを有効または無効にします。また、分散クエリに関連する最適化 (例: シャーディングキーによる集約) も有効にします。

<Note>
  データがシャーディングキーに従って分散されていることを前提としています。そうでない場合、クエリは不正確な結果を返します。
</Note>

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="optimize_skip_unused_shards_limit">
  ## optimize\_skip\_unused\_shards\_limit
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

分片キーの値の数の上限です。この上限に達すると、`optimize_skip_unused_shards` は無効になります。

値が多すぎると処理にかなりのコストがかかる可能性がある一方で、その効果は疑わしい場合があります。`IN (...)` に非常に多くの値が含まれていると、結局のところクエリはすべての分片に送信される可能性が高いためです。

<div id="optimize_skip_unused_shards_nesting">
  ## optimize\_skip\_unused\_shards\_nesting
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

分散クエリのネストレベルに応じて [`optimize_skip_unused_shards`](#optimize_skip_unused_shards) の動作を制御します (この設定を有効にするには、[`optimize_skip_unused_shards`](#optimize_skip_unused_shards) も有効である必要があります) 。これは、ある `Distributed` table が別の `Distributed` table を参照する場合に該当します。

設定可能な値:

* 0 — 無効。`optimize_skip_unused_shards` は常に動作します。
* 1 — `optimize_skip_unused_shards` を最初のレベルでのみ有効にします。
* 2 — `optimize_skip_unused_shards` を第 2 レベルまで有効にします。

<div id="optimize_skip_unused_shards_rewrite_in">
  ## optimize\_skip\_unused\_shards\_rewrite\_in
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

リモート分片向けのクエリ内の IN を書き換え、その分片に属さない値を除外します (`optimize_skip_unused_shards` が必要です) 。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="optimize_sorting_by_input_stream_properties">
  ## optimize\_sorting\_by\_input\_stream\_properties
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

入力ストリームの並び順の特性に基づいてソートを最適化します

<div id="optimize_substitute_columns">
  ## optimize\_substitute\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

カラムの置換には[制約](/ja/reference/statements/create/table#constraints)を使用します。既定値は`false`です。

設定可能な値:

* true, false

<div id="optimize_syntax_fuse_functions">
  ## optimize\_syntax\_fuse\_functions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "この最適化は本番環境で利用可能です"}]}]} />

同一の引数を持つ集約関数を統合する最適化を有効にします。同一の引数を持つ [sum](/ja/reference/functions/aggregate-functions/sum)、[count](/ja/reference/functions/aggregate-functions/count)、[avg](/ja/reference/functions/aggregate-functions/avg) のうち、少なくとも 2 つを含むクエリは [sumCount](/ja/reference/functions/aggregate-functions/sumCount) に書き換えられます。

設定可能な値:

* 0 — 同一の引数を持つ関数は統合されません。
* 1 — 同一の引数を持つ関数は統合されます。

**例**

クエリ:

```sql theme={null}
CREATE TABLE fuse_tbl(a Int8, b Int8) Engine = Log;
SET optimize_syntax_fuse_functions = 1;
EXPLAIN SYNTAX run_query_tree_passes = 1 SELECT sum(a), sum(b), count(b), avg(b) from fuse_tbl FORMAT TSV;
```

結果:

```text theme={null}
SELECT
    sum(__table1.a) AS `sum(a)`,
    tupleElement(sumCount(__table1.b), 1) AS `sum(b)`,
    tupleElement(sumCount(__table1.b), 2) AS `count(b)`,
    divide(tupleElement(sumCount(__table1.b), 1), toFloat64(tupleElement(sumCount(__table1.b), 2))) AS `avg(b)`
FROM default.fuse_tbl AS __table1
```

<div id="optimize_throw_if_noop">
  ## optimize\_throw\_if\_noop
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

[OPTIMIZE](/ja/reference/statements/optimize) クエリでマージが実行されなかった場合に、例外をスローするかどうかを有効または無効にします。

デフォルトでは、`OPTIMIZE` は何も実行しなかった場合でも正常に成功を返します。この設定を使うと、こうした状況を区別し、その理由を例外メッセージで確認できます。

設定可能な値:

* 1 — 例外のスローが有効です。
* 0 — 例外のスローは無効です。

<div id="optimize_time_filter_with_preimage">
  ## optimize\_time\_filter\_with\_preimage
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "関数を変換不要な等価比較に書き換えることで、Date および DateTime の述語を最適化します（例: toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31'）"}]}]} />

関数を変換不要な等価比較に書き換えることで、Date および DateTime の述語を最適化します (例: `toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31'`)

<div id="optimize_trivial_approximate_count_query">
  ## optimize\_trivial\_approximate\_count\_query
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

この種の推定に対応するストレージ (たとえば EmbeddedRocksDB) では、単純な count の最適化に近似値を使用します。

設定可能な値:

* 0 — 最適化は無効です。
  * 1 — 最適化は有効です。

<div id="optimize_trivial_count_query">
  ## optimize\_trivial\_count\_query
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

MergeTree のメタデータを利用して、自明なクエリ `SELECT count() FROM table` を最適化する機能を有効または無効にします。行レベルセキュリティを使用する必要がある場合は、この設定を無効にしてください。

設定可能な値:

* 0 — 最適化は無効です。
  * 1 — 最適化は有効です。

関連項目:

* [optimize\_functions\_to\_subcolumns](#optimize_functions_to_subcolumns)

<div id="optimize_trivial_group_by_limit_query">
  ## optimize\_trivial\_group\_by\_limit\_query
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "`SELECT key_expr FROM t GROUP BY key_expr LIMIT n` クエリで、集約を最大 `LIMIT` 個の異なるキーに制限する新しい設定。"}]}]} />

`max_rows_to_group_by = n + offset` および `group_by_overflow_mode = 'any'` を設定することで、単純なクエリ `SELECT key_expr FROM table GROUP BY key_expr LIMIT n` の最適化を有効または無効にします (SELECT リストに集約関数がなく、`HAVING`/`ORDER BY`/`LIMIT BY`/ウィンドウ句がなく、`GROUP BY` 修飾子もない場合) 。`n + offset` 個の異なるキーが生成された時点で、集約は停止します。

この最適化は、ユーザーが `group_by_overflow_mode` を明示的に `any` 以外の値に設定している場合 (明示した `throw`/`break` の動作を維持するため) 、およびユーザーがすでにより厳しい `max_rows_to_group_by` を設定している場合 (この最適化では何も変わらないため) には適用されません。

設定可能な値:

* 0 — 最適化は無効です。
  * 1 — 最適化は有効です。

<div id="optimize_trivial_insert_select">
  ## optimize\_trivial\_insert\_select
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "この最適化は多くの場合、意味がありません。"}]}]} />

単純な 'INSERT INTO table SELECT ... FROM TABLES' クエリを最適化

<div id="optimize_truncate_order_by_after_group_by_keys">
  ## optimize\_truncate\_order\_by\_after\_group\_by\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "ORDER BY のプレフィックスにすべての GROUP BY キーが含まれた時点で、末尾の ORDER BY 要素を削除します。"}]}]} />

ORDER BY のプレフィックスにすべての GROUP BY キーが含まれた時点で、末尾の ORDER BY 要素を削除します。

<div id="optimize_uniq_to_count">
  ## optimize\_uniq\_to\_count
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

サブクエリに DISTINCT 句または GROUP BY 句がある場合、uniq およびそのバリアント (uniqUpTo を除く) を count に書き換えます。

<div id="optimize_use_implicit_projections">
  ## optimize\_use\_implicit\_projections
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

SELECTクエリの実行時に、暗黙的なプロジェクションを自動的に選択します

<div id="optimize_use_projection_filtering">
  ## optimize\_use\_projection\_filtering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "新しい設定"}]}]} />

SELECT クエリの実行にプロジェクションが選択されていない場合でも、プロジェクションを使用して part の範囲をフィルタリングできるようにします。

<div id="optimize_use_projections">
  ## optimize\_use\_projections
</div>

**別名**: `allow_experimental_projection_optimization`

<SettingsInfoBlock type="Bool" default_value="1" />

`SELECT` クエリの処理時に、[プロジェクション](/ja/reference/engines/table-engines/mergetree-family/mergetree#projections)最適化を有効または無効にします。

設定可能な値:

* 0 — プロジェクション最適化は無効です。
* 1 — プロジェクション最適化は有効です。

<div id="optimize_using_constraints">
  ## optimize\_using\_constraints
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

クエリ最適化には、[制約](/ja/reference/statements/create/table#constraints)を使用します。デフォルトは`false`です。

設定可能な値:

* true, false

<div id="os_threads_nice_value_materialized_view">
  ## os\_threads\_nice\_value\_materialized\_view
</div>

<SettingsInfoBlock type="Int32" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "新しい設定"}]}]} />

materialized view のスレッドに対する Linux の nice 値です。値が低いほど CPU 優先度が高くなります。

CAP\_SYS\_NICE capability が必要です。これがない場合は no-op になります。

設定可能な値: -20 ～ 19。

<div id="os_threads_nice_value_query">
  ## os\_threads\_nice\_value\_query
</div>

**別名**: `os_thread_priority`

<SettingsInfoBlock type="Int32" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "新しい設定"}]}]} />

クエリ処理スレッドの Linux の nice 値です。値が小さいほど、CPU の優先度は高くなります。

CAP\_SYS\_NICE capability が必要です。ない場合は no-op になります。

設定可能な値: -20 から 19。

<div id="page_cache_block_size">
  ## page\_cache\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1048576"},{"label": "この設定をクエリごとに調整できるようにしました。"}]}]} />

ユーザー空間のページキャッシュに保存するファイル chunk のサイズを、バイト単位で指定します。cache を経由するすべての読み取りは、このサイズの倍数に切り上げられます。

この設定はクエリごとに調整できますが、block サイズが異なる cache エントリは再利用できません。この設定を変更すると、既存の cache エントリは実質的に無効化されます。

1 MiB のような大きな値は高スループットのクエリに適しており、64 KiB のような小さな値は低レイテンシのポイントクエリに適しています。

<div id="page_cache_inject_eviction">
  ## page\_cache\_inject\_eviction
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "ユーザー空間ページキャッシュを追加"}]}]} />

ユーザー空間ページキャッシュは、ときどき一部のページをランダムに無効化します。テスト用途を想定しています。

<div id="page_cache_lookahead_blocks">
  ## page\_cache\_lookahead\_blocks
</div>

<SettingsInfoBlock type="UInt64" default_value="16" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "16"},{"label": "この設定をクエリごとに調整できるようにしました。"}]}]} />

ユーザー空間ページキャッシュでキャッシュミスが発生した場合、下位ストレージから、キャッシュにも存在しない連続するブロックを一度に最大この数まで読み込みます。各ブロックのサイズは page\_cache\_block\_size バイトです。

値を大きくすると高スループットのクエリに適しており、低レイテンシのポイントクエリでは先読みを行わないほうが適しています。

<div id="page_cache_max_coalesced_bytes">
  ## page\_cache\_max\_coalesced\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="16777216" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "16777216"},{"label": "cache ミス時にユーザー空間ページキャッシュを拡充するために使用される、単一の結合読み取りのサイズを制限する新しい設定。"}]}]} />

`readBigAt` がユーザー空間ページキャッシュを拡充する際、連続する cache ミスは基盤ストレージからの単一の読み取りにまとめられます。この設定は、その1回の結合読み取りのサイズをバイト単位で制限します。ミスの連続区間がこれより長い場合は、複数の読み取りに分割されます。これにより、並列なコールドリード時に一時バッファの一時的なメモリ使用量を抑えられます。

値を大きくすると、オブジェクトストレージに対するコールドスキャン時の HTTP リクエスト数が減少し、値を小さくすると、一時的なメモリ使用量のピークが低減されます。

<div id="paimon_target_snapshot_id">
  ## paimon\_target\_snapshot\_id
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "-1"},{"label": "新しい設定"}]}]} />

Paimon のインクリメンタルモードにおける、クエリレベルの対象スナップショット読み取りです。>0 の場合、リーダーはコミット済みのウォーターマークを進めることなく、
指定された snapshot\_id の差分のみを取得します。
デフォルト: -1 (無効)

<div id="parallel_distributed_insert_select">
  ## parallel\_distributed\_insert\_select
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "2"},{"label": "デフォルトで並列分散 `INSERT ... SELECT` を有効化"}]}]} />

並列分散 `INSERT ... SELECT` クエリを有効にします。

`INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b` クエリを実行し、両方のテーブルが同じクラスターを使用していて、かつ両方のテーブルが [レプリケーション対応](/ja/reference/engines/table-engines/mergetree-family/replication) または非レプリケートである場合、このクエリは各分片でローカルに処理されます。

設定可能な値:

* `0` — 無効。
* `1` — `SELECT` は、Distributed エンジンの基になるテーブルから各分片で実行されます。
* `2` — `SELECT` は Distributed エンジンの基になるテーブルから、`INSERT` はその基になるテーブルへ、各分片で実行されます。

v25.4 以降、`ReplicatedMergeTree` または `SharedMergeTree` をソースとする `INSERT ... SELECT` も、レプリカ間で並列化できるようになりました。有効にするには:

* `parallel_distributed_insert_select = 2`
* `enable_parallel_replicas = 1`

<div id="parallel_hash_join_threshold">
  ## parallel\_hash\_join\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "100000"},{"label": "新しい設定"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "新しい設定"}]}, {"id": "row-3","items": [{"label": "25.3"},{"label": "0"},{"label": "新しい設定"}]}]} />

ハッシュベースのjoin algorithmが適用される場合、このしきい値は `hash` と `parallel_hash` のどちらを使用するかを判断するのに役立ちます (右側のテーブルサイズを見積もれる場合のみ) 。
前者は、右側のテーブルサイズがこのしきい値を下回ることがわかっている場合に使用されます。

<div id="parallel_non_joined_rows_processing">
  ## parallel\_non\_joined\_rows\_processing
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "RIGHT/FULL `parallel_hash` 結合で、非結合行の並列処理を有効にする新しい設定。"}]}]} />

RIGHT JOIN および FULL JOIN の実行中に、右側のテーブルの非結合行を複数のスレッドで並列に処理できるようにします。
大きなテーブルで `parallel_hash` ハッシュ結合アルゴリズムを使用する場合、これにより非結合フェーズを高速化できることがあります。
無効にすると、非結合行は単一のスレッドで処理されます。

<div id="parallel_replica_offset">
  ## parallel\_replica\_offset
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

これは内部設定であり、直接使用すべきではありません。また、「並列レプリカ」モードの実装詳細を表すものです。この設定は、分散クエリにおいて、並列レプリカの中でクエリ処理に参加するレプリカの索引を示す値として、イニシエーターサーバーによって自動的に設定されます。

<div id="parallel_replicas_allow_in_with_subquery">
  ## parallel\_replicas\_allow\_in\_with\_subquery
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "true の場合、IN のサブクエリは各フォロワーレプリカで実行されます"}]}]} />

true の場合、IN のサブクエリは各フォロワーレプリカで実行されます。

<div id="parallel_replicas_allow_materialized_views">
  ## parallel\_replicas\_allow\_materialized\_views
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "並列レプリカで materialized view を使用できるようにする"}]}]} />

並列レプリカで materialized view を使用できるようにする

<div id="parallel_replicas_allow_view_over_mergetree">
  ## parallel\_replicas\_allow\_view\_over\_mergetree
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

単純なビューが `MergeTree` テーブル上にある場合、並列レプリカでビューの内側のクエリではなく外側のクエリを実行できるようにし、ノード間の並列化を向上させます。これは、すべての分岐がそれぞれ異なる `MergeTree` テーブルを読み取る `UNION ALL` ビューにも適用されます。

<div id="parallel_replicas_connect_timeout_ms">
  ## parallel\_replicas\_connect\_timeout\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="300" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "300"},{"label": "並列レプリカのクエリ用の個別の接続タイムアウト"}]}]} />

並列レプリカによるクエリ実行時に、リモートレプリカへの接続に使用されるタイムアウト時間 (ミリ秒) です。タイムアウトした場合、該当するレプリカはクエリ実行に使用されません

<div id="parallel_replicas_count">
  ## parallel\_replicas\_count
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

これは内部設定であり、直接使用すべきではありません。「並列レプリカ」モードの実装上の詳細を表すものです。この設定は、分散クエリに対して、クエリ処理に参加する並列レプリカ数に応じて、イニシエーターサーバーによって自動的に設定されます。

<div id="parallel_replicas_custom_key">
  ## parallel\_replicas\_custom\_key
</div>

特定のテーブルに対して、レプリカ間で処理を分割するために使用できる任意の整数式です。
値には任意の整数式を指定できます。

主キーを使用した単純な式が推奨されます。

この設定を、複数のレプリカを持つ単一の分片で構成されるクラスターで使用した場合、それらのレプリカは仮想分片に変換されます。
それ以外の場合は、`SAMPLE` キーと同様に動作し、各分片の複数のレプリカを使用します。

<div id="parallel_replicas_custom_key_range_lower">
  ## parallel\_replicas\_custom\_key\_range\_lower
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "動的な分片で並列レプリカを使用する際の範囲フィルターを制御する設定を追加"}]}]} />

フィルタータイプ `range` が、カスタム範囲 `[parallel_replicas_custom_key_range_lower, INT_MAX]` に基づいて処理をレプリカ間で均等に分割できるようにします。

[parallel\_replicas\_custom\_key\_range\_upper](#parallel_replicas_custom_key_range_upper) と組み合わせて使用すると、範囲 `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]` に対して、フィルターが処理をレプリカ間で均等に分割できるようになります。

注: この設定によってクエリ処理中に追加のデータがフィルタリングされることはありません。代わりに、並列処理のために範囲フィルターが `[0, INT_MAX]` を分割する位置が変更されます。

<div id="parallel_replicas_custom_key_range_upper">
  ## parallel\_replicas\_custom\_key\_range\_upper
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "動的な分片を使用する並列レプリカで range フィルターを使用する際の範囲フィルターを制御する設定を追加しました。値を 0 にすると上限は無効になります"}]}]} />

フィルタータイプ `range` が、カスタム範囲 `[0, parallel_replicas_custom_key_range_upper]` に基づいて、レプリカ間で処理を均等に分割できるようにします。値を 0 にすると上限は無効になり、カスタムキー式の最大値が設定されます。

[parallel\_replicas\_custom\_key\_range\_lower](#parallel_replicas_custom_key_range_lower) と組み合わせて使用すると、範囲 `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]` に対して、フィルターがレプリカ間で処理を均等に分割できるようになります。

注: この設定によってクエリ処理中に追加のデータがフィルターされることはありません。代わりに、並列処理のために range フィルターが範囲 `[0, INT_MAX]` を分割する位置が変更されます

<div id="parallel_replicas_filter_pushdown">
  ## parallel\_replicas\_filter\_pushdown
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "新しい設定"}]}]} />

並列レプリカが実行するクエリ部分にフィルターをプッシュダウンできるようにします

<div id="parallel_replicas_for_cluster_engines">
  ## parallel\_replicas\_for\_cluster\_engines
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "1"},{"label": "新しい設定"}]}]} />

テーブル関数エンジンを対応する -Cluster の代替に置き換えます

<div id="parallel_replicas_for_non_replicated_merge_tree">
  ## parallel\_replicas\_for\_non\_replicated\_merge\_tree
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

true の場合、ClickHouse は非レプリケートの MergeTree テーブルでも並列レプリカアルゴリズムを使用します

<div id="parallel_replicas_index_analysis_only_on_coordinator">
  ## parallel\_replicas\_index\_analysis\_only\_on\_coordinator
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "索引解析はレプリカコーディネーターでのみ実行され、他のレプリカではスキップされます。parallel_replicas_local_plan が有効な場合にのみ適用されます"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "索引解析はレプリカコーディネーターでのみ実行され、他のレプリカではスキップされます。parallel_replicas_local_plan が有効な場合にのみ適用されます"}]}]} />

索引解析はレプリカコーディネーターでのみ実行され、他のレプリカではスキップされます。parallel\_replicas\_local\_pla が有効な場合にのみ適用されます

<div id="parallel_replicas_insert_select_local_pipeline">
  ## parallel\_replicas\_insert\_select\_local\_pipeline
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "並列レプリカを使用した分散 INSERT SELECT 時にローカルパイプラインを使用します。現在はパフォーマンス上の問題により無効化されています"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "並列レプリカを使用した分散 INSERT SELECT 時にローカルパイプラインを使用します。現在はパフォーマンス上の問題により無効化されています"}]}]} />

並列レプリカを使用した分散 INSERT SELECT 時にローカルパイプラインを使用します

<div id="parallel_replicas_local_plan">
  ## parallel\_replicas\_local\_plan
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "並列レプリカを使用するクエリで、ローカルレプリカにローカルプランを使用する"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "並列レプリカを使用するクエリで、ローカルレプリカにローカルプランを使用する"}]}, {"id": "row-3","items": [{"label": "24.10"},{"label": "1"},{"label": "並列レプリカを使用するクエリで、ローカルレプリカにローカルプランを使用する"}]}]} />

ローカルレプリカ用のローカルプランを構築します

<div id="parallel_replicas_mark_segment_size">
  ## parallel\_replicas\_mark\_segment\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "この設定の値は現在自動的に自動決定されます"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "128"},{"label": "新しい並列レプリカのコーディネーター実装でセグメントサイズを制御するための新しい設定を追加"}]}]} />

パーツは、並列読み取りのためにレプリカ間へ分散できるよう、仮想的にセグメントに分割されます。この設定は、それらのセグメントのサイズを制御します。何をしているのかを完全に理解している場合を除き、変更は推奨されません。値は \[128; 16384] の範囲である必要があります

<div id="parallel_replicas_min_number_of_rows_per_replica">
  ## parallel\_replicas\_min\_number\_of\_rows\_per\_replica
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

クエリで使用するレプリカ数を、 (読み取ると推定される行数 / min\_number\_of\_rows\_per\_replica) の範囲に制限します。最大値は引き続き `max_parallel_replicas` によって制限されます

<div id="parallel_replicas_mode">
  ## parallel\_replicas\_mode
</div>

<SettingsInfoBlock type="ParallelReplicasMode" default_value="read_tasks" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "read_tasks"},{"label": "この設定は、並列レプリカ機能をベータ化する一環として導入されました"}]}]} />

並列レプリカでカスタムキーとともに使用するフィルターの種類。default - カスタムキーに対してモジュロ演算を使用します。range - カスタムキーの値型で取り得るすべての値を使って、カスタムキーに範囲フィルターを適用します。

<div id="parallel_replicas_only_with_analyzer">
  ## parallel\_replicas\_only\_with\_analyzer
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "並列レプリカは、アナライザが有効な場合にのみサポートされます"}]}]} />

並列レプリカを使用するには、アナライザを有効にする必要があります。アナライザが無効な場合は、レプリカからの並列読み取りが有効になっていても、クエリはローカル実行にフォールバックします。アナライザを有効にせずに並列レプリカを使用することはサポートされていません

<div id="parallel_replicas_prefer_local_join">
  ## parallel\_replicas\_prefer\_local\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "true で、JOIN を並列レプリカアルゴリズムで実行でき、JOIN の右側のすべてのストレージが *MergeTree である場合は、GLOBAL JOIN ではなくローカル JOIN が使用されます。"}]}]} />

true で、JOIN を並列レプリカアルゴリズムで実行でき、JOIN の右側のすべてのストレージが \*MergeTree である場合は、GLOBAL JOIN ではなくローカル JOIN が使用されます。

<div id="parallel_replicas_prefer_local_replica">
  ## parallel\_replicas\_prefer\_local\_replica
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "新しい設定。無効にすると、並列読み取り用のレプリカは、ローカルレプリカを集合に強制的に含めず、ロードバランシングアルゴリズムのみに基づいて選択されます。"}]}]} />

有効な場合 (デフォルト) 、並列読み取りに使用されるレプリカの集合には常にローカルレプリカが含まれます。
無効な場合、ローカルレプリカは優先されず、レプリカはロードバランシングアルゴリズムのみに基づいて選択されます。
これにより、`max_parallel_replicas = 1` を指定したクエリを別のホストに振り向けることができ、多数の短いクエリがクラスター全体に分散される場合の cache の局所性を向上できます。

<div id="parallel_replicas_support_projection">
  ## parallel\_replicas\_support\_projection
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "新しい設定。並列レプリカでプロジェクションの最適化を利用できます。parallel_replicas_local_plan が有効で、aggregation_in_order が無効な場合にのみ有効です。"}]}]} />

並列レプリカでプロジェクションの最適化を利用できます。parallel\_replicas\_local\_plan が有効で、aggregation\_in\_order が無効な場合にのみ有効です。

<div id="parallel_view_processing">
  ## parallel\_view\_processing
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

アタッチされたビューへのプッシュを、逐次ではなく同時に実行できるようにします。

<div id="parallelize_output_from_storages">
  ## parallelize\_output\_from\_storages
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "1"},{"label": "file/url/S3 などから読み取るクエリの実行時に並列度を有効にします。これにより、行の順序が入れ替わる可能性があります。"}]}]} />

ストレージからの読み取りステップの出力を並列化します。可能な場合は、ストレージから読み取った直後のクエリ処理を並列化できます。

<div id="parsedatetime_e_requires_space_padding">
  ## parsedatetime\_e\_requires\_space\_padding
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "MySQL DATE_FORMAT/STR_TO_DATE との互換性を向上"}]}]} />

関数 `parseDateTime` のフォーマッタ `%e` は、1 桁の日付は空白で埋められていることを想定しています。たとえば、`' 2'` は受け付けられますが、`'2'` はエラーになります。

<div id="parsedatetime_parse_without_leading_zeros">
  ## parsedatetime\_parse\_without\_leading\_zeros
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.11"},{"label": "1"},{"label": "MySQL DATE_FORMAT/STR_TO_DATE との互換性を改善"}]}]} />

関数 'parseDateTime' では、フォーマッタ '%c'、'%l'、'%k' により、先頭にゼロのない月や時をパースできます。

<div id="partial_merge_join_left_table_buffer_bytes">
  ## partial\_merge\_join\_left\_table\_buffer\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

0 以外の場合、partial merge join の左側テーブルについて、左テーブルのブロックをより大きな単位にまとめます。joining thread ごとに、指定したメモリ量の最大 2 倍を使用します。

<div id="partial_merge_join_rows_in_right_blocks">
  ## partial\_merge\_join\_rows\_in\_right\_blocks
</div>

<SettingsInfoBlock type="UInt64" default_value="65536" />

[JOIN](/ja/reference/statements/select/join) クエリで partial merge join アルゴリズムを使用する際の、右側の結合データブロックのサイズを制限します。

ClickHouse server:

1. 右側の結合データを、指定した行数以下のブロックに分割します。
2. 各ブロックに最小値と最大値に基づく索引を作成します。
3. 可能であれば、準備したブロックをディスクにアンロードします。

設定可能な値:

* 任意の正の整数。推奨値の範囲: \[1000, 100000]。

<div id="partial_result_on_first_cancel">
  ## partial\_result\_on\_first\_cancel
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

キャンセル後に、クエリが部分的な結果を返せるようにします。

<div id="parts_to_delay_insert">
  ## parts\_to\_delay\_insert
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

宛先テーブルの1つのパーティションに少なくともこの数のアクティブなパーツがある場合、テーブルへの insert を意図的に遅くします。

<div id="parts_to_throw_insert">
  ## parts\_to\_throw\_insert
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

宛先テーブルの1つのパーティション内でアクティブなパーツ数がこの値を超えると、'パーツが多すぎる ...' 例外をスローします。

<div id="per_part_index_stats">
  ## per\_part\_index\_stats
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "新しい設定"}]}]} />

パートごとの索引統計をログに記録します

<div id="poll_interval">
  ## poll\_interval
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

サーバーのクエリ待機ループを、指定した秒数だけブロックします。

<div id="polyglot_dialect">
  ## polyglot\_dialect
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": ""},{"label": "polyglot トランスパイラの入力元のSQL方言を指定するための新しい設定。"}]}]} />

polyglot トランスパイラの入力元のSQL方言 (例: 'sqlite'、'mysql'、'postgresql'、'snowflake'、'duckdb') 。

<div id="postgresql_connection_attempt_timeout">
  ## postgresql\_connection\_attempt\_timeout
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "2"},{"label": "PostgreSQL 接続の `connect_timeout` パラメータを制御できるようにします。"}]}]} />

PostgreSQL エンドポイントへの 1 回の接続試行における接続タイムアウトを、秒単位で指定します。
この値は、接続 URL の `connect_timeout` パラメータとして渡されます。

<div id="postgresql_connection_pool_auto_close_connection">
  ## postgresql\_connection\_pool\_auto\_close\_connection
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

接続をプールに返却する前に、その接続を閉じます。

<div id="postgresql_connection_pool_retries">
  ## postgresql\_connection\_pool\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "2"},{"label": "PostgreSQL 接続プールの再試行回数を制御できるようになりました。"}]}]} />

PostgreSQL テーブルエンジンおよびデータベースエンジンの接続プールでの push/pop の再試行回数。

<div id="postgresql_connection_pool_size">
  ## postgresql\_connection\_pool\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="16" />

PostgreSQL table engineおよびデータベースエンジンの接続プールサイズ。

<div id="postgresql_connection_pool_wait_timeout">
  ## postgresql\_connection\_pool\_wait\_timeout
</div>

<SettingsInfoBlock type="UInt64" default_value="5000" />

PostgreSQL テーブルエンジンおよびデータベースエンジンで、接続プールが空の場合の push/pop のタイムアウトを設定します。デフォルトでは、プールが空でも待機します。

<div id="postgresql_fault_injection_probability">
  ## postgresql\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "新しい設定"}]}]} />

内部の (レプリケーション用) PostgreSQLクエリを失敗させるおおよその確率です。有効な値の範囲は \[0.0f, 1.0f] です

<div id="predicate_statistics_sample_rate">
  ## predicate\_statistics\_sample\_rate
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "述語の選択性統計を system.predicate_statistics_log に収集するための新しい設定"}]}]} />

述語の選択性統計を `system.predicate_statistics_log` に収集します。N > 0 に設定すると、クエリ ID に基づいてクエリのおよそ 1/N がサンプリングされます。0 は無効を意味します。

<div id="prefer_column_name_to_alias">
  ## prefer\_column\_name\_to\_alias
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

クエリの式や句で、別名ではなく元のカラム名を使うかどうかを有効または無効にします。特に、別名がカラム名と同じ場合に重要です。[Expression Aliases](/ja/reference/syntax#notes-on-usage) を参照してください。この設定を有効にすると、ClickHouse の別名構文ルールが、他の多くのデータベースエンジンとの互換性をより高められます。

設定可能な値:

* 0 — カラム名は別名に置き換えられます。
* 1 — カラム名は別名に置き換えられません。

**例**

有効時と無効時の違い:

クエリ:

```sql theme={null}
SET prefer_column_name_to_alias = 0;
SELECT avg(number) AS number, max(number) FROM numbers(10);
```

結果:

```text theme={null}
Received exception from server (version 21.5.1):
Code: 184. DB::Exception: Received from localhost:9000. DB::Exception: Aggregate function avg(number) is found inside another aggregate function in query: While processing avg(number) AS number.
```

クエリ:

```sql theme={null}
SET prefer_column_name_to_alias = 1;
SELECT avg(number) AS number, max(number) FROM numbers(10);
```

結果:

```text theme={null}
┌─number─┬─max(number)─┐
│    4.5 │           9 │
└────────┴─────────────┘
```

<div id="prefer_external_sort_block_bytes">
  ## prefer\_external\_sort\_block\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="16744704" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "16744704"},{"label": "外部ソートではブロックの最大バイト数を優先し、マージ時のメモリ使用量を削減します。"}]}]} />

外部ソートではブロックの最大バイト数を優先し、マージ時のメモリ使用量を削減します。

<div id="prefer_global_in_and_join">
  ## prefer\_global\_in\_and\_join
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

`IN`/`JOIN` 演算子を `GLOBAL IN`/`GLOBAL JOIN` に置き換えるようにします。

設定可能な値:

* 0 — 無効。`IN`/`JOIN` 演算子は `GLOBAL IN`/`GLOBAL JOIN` に置き換えられません。
* 1 — 有効。`IN`/`JOIN` 演算子は `GLOBAL IN`/`GLOBAL JOIN` に置き換えられます。

**使用方法**

`SET distributed_product_mode=global` を使用すると、分散テーブルに対するクエリの動作は変更できますが、ローカルテーブルや外部リソース上のテーブルには適していません。そこで `prefer_global_in_and_join` 設定が役立ちます。

たとえば、ローカルテーブルを持つクエリ処理ノードがあり、これらは分散には適していないとします。その場合、分散処理時に `GLOBAL` キーワード、つまり `GLOBAL IN`/`GLOBAL JOIN` を使って、それらのデータをその場で分散させる必要があります。

`prefer_global_in_and_join` のもう 1 つのユースケースは、外部エンジンで作成されたテーブルにアクセスする場合です。この設定を使うと、そのようなテーブルを `JOIN` するときの外部ソースへの呼び出し回数を削減できます。クエリごとに 1 回だけで済みます。

**関連項目:**

* `GLOBAL IN`/`GLOBAL JOIN` の使い方について詳しくは、[Distributed subqueries](/ja/reference/statements/in#distributed-subqueries) を参照してください

<div id="prefer_localhost_replica">
  ## prefer\_localhost\_replica
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

分散クエリの処理時に、localhost のレプリカを優先的に使用するかどうかを有効/無効にします。

設定可能な値:

* 1 — localhost のレプリカが存在する場合、ClickHouse は常にそのレプリカにクエリを送信します。
* 0 — ClickHouse は、[load\_balancing](#load_balancing) 設定で指定された負荷分散戦略を使用します。

<Note>
  [parallel\_replicas\_custom\_key](#parallel_replicas_custom_key) を使用せずに [max\_parallel\_replicas](#max_parallel_replicas) を使う場合は、この設定を無効にしてください。
  [parallel\_replicas\_custom\_key](#parallel_replicas_custom_key) が設定されている場合は、複数の分片それぞれに複数のレプリカがあるクラスターで使用しているときにのみ、この設定を無効にしてください。
  単一の分片に複数のレプリカがあるクラスターで使用している場合、この設定を無効にすると悪影響が生じます。
</Note>

<div id="prefer_warmed_unmerged_parts_seconds">
  ## prefer\_warmed\_unmerged\_parts\_seconds
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

ClickHouse Cloud でのみ効果があります。マージ済みパーツの経過時間がこの秒数未満で、かつ事前ウォームされていない場合 ([cache\_populated\_by\_fetch](/ja/reference/settings/merge-tree-settings#cache_populated_by_fetch) を参照) 、その元となるすべてのパーツが利用可能で事前ウォームされていれば、SELECT クエリは代わりにそれらのパーツから読み取ります。Replicated-/SharedMergeTree でのみ有効です。なお、これは CacheWarmer がそのパーツを処理したかどうかだけを確認します。別の要因でそのパーツが cache にフェッチされていたとしても、CacheWarmer が処理するまではコールドと見なされます。逆に、いったんウォームされていれば、その後 cache から追い出されても、引き続きウォーム済みと見なされます。

<div id="preferred_block_size_bytes">
  ## preferred\_block\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

この設定は、クエリ処理におけるデータブロックのサイズを調整するもので、より大まかな `max_block_size` 設定をさらに細かく調整するためのものです。カラムのサイズが大きく、`max_block_size` 行ではブロックサイズが指定したバイト数を超える可能性が高い場合、CPU cache の局所性を高めるためにブロックサイズが小さくされます。

<div id="preferred_max_column_in_block_size_bytes">
  ## preferred\_max\_column\_in\_block\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

読み取り時のブロック内のカラムの最大サイズの上限です。キャッシュミスの回数を減らすのに役立ちます。L2 cache のサイズに近い値にする必要があります。

<div id="preferred_optimize_projection_name">
  ## preferred\_optimize\_projection\_name
</div>

空でない文字列が設定されている場合、ClickHouse はクエリで指定されたプロジェクションを適用しようとします。

設定可能な値:

* string: 優先するプロジェクションの名前

<div id="prefetch_buffer_size">
  ## prefetch\_buffer\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

ファイルシステムから読み取る際のプリフェッチバッファの最大サイズです。

<div id="print_pretty_type_names">
  ## print\_pretty\_type\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "ユーザー体験の向上。"}]}]} />

`DESCRIBE` クエリおよび `toTypeName()` 関数で、深くネストされた型名をインデント付きで見やすく表示できるようにします。

例:

```sql theme={null}
CREATE TABLE test (a Tuple(b String, c Tuple(d Nullable(UInt64), e Array(UInt32), f Array(Tuple(g String, h Map(String, Array(Tuple(i String, j UInt64))))), k Date), l Nullable(String))) ENGINE=Memory;
DESCRIBE TABLE test FORMAT TSVRaw SETTINGS print_pretty_type_names=1;
```

```
a   Tuple(
    b String,
    c Tuple(
        d Nullable(UInt64),
        e Array(UInt32),
        f Array(Tuple(
            g String,
            h Map(
                String,
                Array(Tuple(
                    i String,
                    j UInt64
                ))
            )
        )),
        k Date
    ),
    l Nullable(String)
)
```

<div id="priority">
  ## 優先度
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

クエリの優先度。1 が最も高く、値が大きいほど優先度は低くなります。0 は優先度を使用しないことを示します。

<div id="promql_database">
  ## promql\_database
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": ""},{"label": "新しい実験的な設定"}]}]} />

'promql' dialect で使用するデータベース名を指定します。空文字列は現在のデータベースを意味します。

<div id="promql_evaluation_time">
  ## promql\_evaluation\_time
</div>

**別名**: `evaluation_time`

<SettingsInfoBlock type="FloatAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "auto"},{"label": "設定名が変更されました。以前の名前は `evaluation_time` です。"}]}]} />

promql dialect で使用する評価時刻を指定します。`auto` は現在時刻を表します。

<div id="promql_table">
  ## promql\_table
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": ""},{"label": "新しい実験的設定"}]}]} />

'promql' ダイアレクトで使用される TimeSeries テーブル名を指定します。

<div id="push_external_roles_in_interserver_queries">
  ## push\_external\_roles\_in\_interserver\_queries
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "新しい設定"}]}]} />

クエリの実行中に、クエリの発行元から他のノードへユーザーロールをプッシュすることを有効にします。

<div id="query_cache_compress_entries">
  ## query\_cache\_compress\_entries
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

[query cache](/ja/concepts/features/performance/caches/query-cache) 内のエントリを圧縮します。これにより、query cache のメモリ消費量は抑えられますが、そこへの書き込み / そこからの読み取りは遅くなります。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_cache_for_subqueries">
  ## query\_cache\_for\_subqueries
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "すべてのサブクエリに `use_query_cache` を伝播できるようにする新しい設定です。これがない場合、サブクエリはサブクエリごとに明示的に `SETTINGS use_query_cache = true` を指定してオプトインしたときにのみキャッシュされます。"}]}]} />

有効にすると、サブクエリの結果を [query cache](/ja/concepts/features/performance/caches/query-cache) に書き込み、そこから読み出せるようになります。これにより、`use_query_cache` がすべてのサブクエリに伝播されます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_cache_max_entries">
  ## query\_cache\_max\_entries
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

現在のユーザーが[query cache](/ja/concepts/features/performance/caches/query-cache)に保存できるクエリ結果の最大件数です。0 は無制限を意味します。

設定可能な値:

* 0 以上の整数。

<div id="query_cache_max_size_in_bytes">
  ## query\_cache\_max\_size\_in\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

現在のユーザーが[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache)に割り当て可能なメモリの最大量 (バイト単位) です。0 は無制限を意味します。

設定可能な値:

* 0 以上の整数。

<div id="query_cache_min_query_duration">
  ## query\_cache\_min\_query\_duration
</div>

<SettingsInfoBlock type="ミリ秒" default_value="0" />

クエリの結果を [query cache](/ja/concepts/features/performance/caches/query-cache) に保存するために必要な、クエリの最小実行時間 (ミリ秒単位) 。

設定可能な値:

* 0 以上の整数。

<div id="query_cache_min_query_runs">
  ## query\_cache\_min\_query\_runs
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

結果が[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache)に保存されるまでに、`SELECT`クエリを実行する必要がある最小回数です。

設定可能な値:

* 0 以上の整数。

<div id="query_cache_nondeterministic_function_handling">
  ## query\_cache\_nondeterministic\_function\_handling
</div>

<SettingsInfoBlock type="QueryResultCacheNondeterministicFunctionHandling" default_value="throw" />

`rand()` や `now()` のような非決定論的関数を含む `SELECT` クエリを、[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache) がどのように扱うかを制御します。

設定可能な値:

* `'throw'` - 例外をスローし、クエリ結果をキャッシュしません。
* `'save'` - クエリ結果をキャッシュします。
* `'ignore'` - クエリ結果をキャッシュせず、例外もスローしません。

<div id="query_cache_share_between_users">
  ## query\_cache\_share\_between\_users
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

有効にすると、[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache) にキャッシュされた `SELECT` クエリの結果を、他のユーザーも読み取れるようになります。
セキュリティ上の理由から、この設定を有効にすることは推奨されません。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_cache_squash_partial_results">
  ## query\_cache\_squash\_partial\_results
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

部分的な結果ブロックを、[max\_block\_size](#max_block_size) サイズのブロックにまとめます。[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache) への insert のパフォーマンスは低下しますが、cache エントリの圧縮効率が向上します ([query\_cache\_compress-entries](#query_cache_compress_entries) を参照) 。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_cache_system_table_handling">
  ## query\_cache\_system\_table\_handling
</div>

<SettingsInfoBlock type="QueryResultCacheSystemTableHandling" default_value="throw" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "throw"},{"label": "クエリキャッシュは、システムテーブルに対するクエリ結果をキャッシュしなくなりました"}]}]} />

[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache)がシステムテーブル、つまりデータベース `system.*` および `information_schema.*` 内のテーブルに対する `SELECT` クエリをどのように扱うかを制御します。

設定可能な値:

* `'throw'` - 例外をスローし、クエリ結果をキャッシュしません。
* `'save'` - クエリ結果をキャッシュします。
* `'ignore'` - クエリ結果をキャッシュせず、例外もスローしません。

<div id="query_cache_tag">
  ## query\_cache\_tag
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": ""},{"label": "query cache の設定にラベルを付けるための新しい設定。"}]}]} />

[query cache](/ja/concepts/features/performance/caches/query-cache) のエントリのラベルとして機能する文字列です。
同じクエリでもタグが異なれば、query cache では別のものとして扱われます。

設定可能な値:

* 任意の文字列

<div id="query_cache_ttl">
  ## query\_cache\_ttl
</div>

<SettingsInfoBlock type="Seconds" default_value="60" />

この秒数を過ぎると、[query cache](/ja/concepts/features/performance/caches/query-cache) 内のエントリは古いものと見なされます。

設定可能な値:

* 0 以上の整数。

<div id="query_metric_log_interval">
  ## query\_metric\_log\_interval
</div>

<SettingsInfoBlock type="Int64" default_value="-1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "-1"},{"label": "新しい設定"}]}]} />

個々のクエリについて [query\_metric\_log](/ja/reference/system-tables/query_metric_log) を収集する間隔 (ミリ秒) です。

負の値を設定すると、[query\_metric\_log setting](/ja/reference/settings/server-settings/settings#query_metric_log) の `collect_interval_milliseconds` の値が使用され、設定されていない場合はデフォルトで 1000 になります。

個別のクエリの収集を無効にするには、`query_metric_log_interval` を 0 に設定します。

デフォルト値: -1

<div id="query_plan_aggregation_in_order">
  ## query\_plan\_aggregation\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.12"},{"label": "1"},{"label": "クエリプラン周りの一部のリファクタリングを有効化"}]}]} />

in-order 集約に関するクエリプランレベルの最適化を切り替えます。
設定 [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_convert_any_join_to_semi_or_anti_join">
  ## query\_plan\_convert\_any\_join\_to\_semi\_or\_anti\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "新しい設定"}]}]} />

JOIN 後のフィルタが、不一致の行または一致した行に対して常に false と評価される場合に、ANY JOIN を SEMI JOIN または ANTI JOIN に変換できるようにします

<div id="query_plan_convert_join_to_in">
  ## query\_plan\_convert\_join\_to\_in
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

出力カラムが左側のテーブルにのみ関連している場合に、`JOIN` を `IN` を使用するサブクエリに変換することを許可します。非 ANY JOIN (たとえば、デフォルトの ALL JOIN) では、誤った結果になる可能性があります。

<div id="query_plan_convert_outer_join_to_inner_join">
  ## query\_plan\_convert\_outer\_join\_to\_inner\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "JOIN 後のフィルター条件によって常にデフォルト値が除外される場合、OUTER JOIN を INNER JOIN に変換できるようにします"}]}]} />

`JOIN` 後のフィルター条件によって常にデフォルト値が除外される場合、`OUTER JOIN` を `INNER JOIN` に変換できるようにします

<div id="query_plan_direct_read_from_text_index">
  ## query\_plan\_direct\_read\_from\_text\_index
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "テキスト索引が GA になりました"}]}, {"id": "row-2","items": [{"label": "25.9"},{"label": "1"},{"label": "新しい設定"}]}]} />

クエリプランで、転置テキスト索引のみを使用した全文検索フィルタリングを実行できるようにします。

<div id="query_plan_display_internal_aliases">
  ## query\_plan\_display\_internal\_aliases
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "新しい設定"}]}]} />

元のクエリで指定された別名ではなく、EXPLAIN PLAN に内部別名 (\_\_table1 など) を表示します。

<div id="query_plan_enable_multithreading_after_window_functions">
  ## query\_plan\_enable\_multithreading\_after\_window\_functions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

並列ストリーム処理を可能にするため、ウィンドウ関数の評価後にマルチスレッドを有効にします

<div id="query_plan_enable_optimizations">
  ## query\_plan\_enable\_optimizations
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

クエリプランレベルのクエリ最適化の有効/無効を切り替えます。

<Note>
  これは上級者向けの設定であり、開発者によるデバッグ用途でのみ使用してください。将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - クエリプランレベルのすべての最適化を無効にする
* 1 - クエリプランレベルの最適化を有効にする (ただし、個々の最適化はそれぞれの設定で無効にできる場合があります)

<div id="query_plan_execute_functions_after_sorting">
  ## query\_plan\_execute\_functions\_after\_sorting
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

ソート処理の後に式を移動するクエリプランレベルの最適化を切り替えます。
[`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_filter_push_down">
  ## query\_plan\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

実行プラン内でフィルタを下位に押し下げる、クエリプランレベルの最適化の有効/無効を切り替えます。
この設定は、[query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_join_shard_by_pk_ranges">
  ## query\_plan\_join\_shard\_by\_pk\_ranges
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

両方のテーブルで、結合キーに PRIMARY KEY のプレフィックスが含まれている場合は、JOIN に分片化を適用します。hash、parallel\_hash、full\_sorting\_merge アルゴリズムでサポートされています。通常、クエリの高速化にはつながりませんが、メモリ消費を抑えられる場合があります。

<div id="query_plan_join_swap_table">
  ## query\_plan\_join\_swap\_table
</div>

<SettingsInfoBlock type="BoolAuto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "auto"},{"label": "新しい設定。以前は常に右側のテーブルが選択されていました。"}]}]} />

クエリプランで、JOIN のどちら側を build table (inner とも呼ばれ、ハッシュ結合ではハッシュテーブルに挿入される側) にするかを決定します。この設定は、`JOIN ON` 句を使用する strictness が `ALL` の JOIN でのみサポートされます。設定可能な値は次のとおりです。

* 'auto': planner がどの table を build table として使用するかを決定します。
  * 'false': table を入れ替えません (右側の table が build table になります) 。
  * 'true': 常に table を入れ替えます (左側の table が build table になります) 。

<div id="query_plan_lift_up_array_join">
  ## query\_plan\_lift\_up\_array\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

実行計画内で ARRAY JOIN を上位に移動する、クエリプランレベルの最適化を切り替えます。
この設定は、[query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグのためにのみ使用すべきです。この設定は、将来後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_lift_up_union">
  ## query\_plan\_lift\_up\_union
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

より大きなクエリプランの部分木をユニオン内へ移動して、追加の最適化を可能にするクエリプランレベルの最適化を有効または無効にします。
この設定は [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用するべきものです。この設定は今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_max_limit_for_lazy_materialization">
  ## query\_plan\_max\_limit\_for\_lazy\_materialization
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "10"},{"label": "遅延マテリアライゼーションの最適化でクエリプランを使用できる上限値を制御する新しい設定を追加しました。0 の場合、制限はありません"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10000"},{"label": "パフォーマンス改善に伴い、上限値を引き上げました"}]}, {"id": "row-3","items": [{"label": "25.11"},{"label": "100"},{"label": "さらに最適化"}]}]} />

遅延マテリアライゼーションの最適化でクエリプランを使用できる上限値を制御します。0 の場合、制限はありません。

<div id="query_plan_max_limit_for_top_k_optimization">
  ## query\_plan\_max\_limit\_for\_top\_k\_optimization
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1000"},{"label": "新しい設定"}]}]} />

minmax スキップ索引と動的しきい値フィルタリングを使用する TopK 最適化で、クエリプランを評価できる limit の最大値を制御します。0 の場合、制限はありません。

<div id="query_plan_max_optimizations_to_apply">
  ## query\_plan\_max\_optimizations\_to\_apply
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

クエリプランに適用する最適化の総数を制限します。設定 [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) を参照してください。
複雑なクエリで最適化に時間がかかりすぎるのを防ぐのに役立ちます。
EXPLAIN PLAN クエリでは、この上限に達すると最適化の適用を停止し、その時点のプランを返します。
通常のクエリ実行では、実際の最適化回数がこの設定値を超えると、例外が発生します。

<Note>
  これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきものです。今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

<div id="query_plan_max_step_description_length">
  ## query\_plan\_max\_step\_description\_length
</div>

<SettingsInfoBlock type="UInt64" default_value="500" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "500"},{"label": "新しい設定"}]}]} />

EXPLAIN PLAN におけるステップ説明の最大長。

<div id="query_plan_merge_expressions">
  ## query\_plan\_merge\_expressions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

連続するフィルターをマージするクエリプランレベルの最適化を有効または無効にします。
設定 [query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_merge_filter_into_join_condition">
  ## query\_plan\_merge\_filter\_into\_join\_condition
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "フィルターをJOIN条件にマージする新しい設定を追加"}]}]} />

`JOIN` 条件へのフィルターのマージを有効にし、`CROSS JOIN` を `INNER` に変換します。

<div id="query_plan_merge_filters">
  ## query\_plan\_merge\_filters
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "クエリプラン内のフィルターをマージできるようにします"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "クエリプラン内のフィルターをマージできるようにします。これは、アナライザによる filter-push-down を適切にサポートするために必要です。"}]}]} />

クエリプラン内のフィルターをマージできるようにします。

<div id="query_plan_optimize_join_order_algorithm">
  ## query\_plan\_optimize\_join\_order\_algorithm
</div>

<SettingsInfoBlock type="JoinOrderAlgorithm" default_value="greedy" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "greedy"},{"label": "新しい実験的な設定"}]}]} />

クエリプランの最適化時に試行する JOIN 順序アルゴリズムを指定します。使用できるアルゴリズムは次のとおりです。

* 'greedy' - 基本的な貪欲アルゴリズムです。高速に動作しますが、最適な JOIN 順序にならない場合があります
* 'dpsize' - 現在は INNER JOIN に対してのみ DPsize アルゴリズムを実装しています。可能なすべての JOIN 順序を考慮して最適なものを見つけますが、多数のテーブルや JOIN 述語を含むクエリでは遅くなる可能性があります。
  複数のアルゴリズムを指定できます。たとえば 'dpsize,greedy' です。

<div id="query_plan_optimize_join_order_limit">
  ## query\_plan\_optimize\_join\_order\_limit
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "1"},{"label": "新しい設定"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "10"},{"label": "デフォルトで、より多くのテーブルに対する JOIN の並べ替えを許可"}]}]} />

同じサブクエリ内の JOIN の順序を最適化します。現在のところ、ごく限られたケースでのみサポートされています。
値は、最適化対象となるテーブルの最大数です。

<div id="query_plan_optimize_join_order_randomize">
  ## query\_plan\_optimize\_join\_order\_randomize
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "テストのために JOIN 順序の統計をランダム化する新しい設定。"}]}]} />

0 以外の値の場合、JOIN 順序オプティマイザは実際の統計情報の代わりに、ランダムに生成されたカーディナリティと NDV を使用します。
1 に設定すると random seed が生成され、1 より大きい値に設定すると、その値が seed として直接使用されます。
これは、異なる JOIN 順序によって発生するエラーを見つけるためのテストを目的としています。

<div id="query_plan_optimize_lazy_final">
  ## query\_plan\_optimize\_lazy\_final
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "ReplacingMergeTree で FINAL を使用した読み取りを、セットベースの索引解析によって最適化するための新しい設定"}]}]} />

主キーのセットを構築し、それを索引解析に利用することで、ReplacingMergeTree で FINAL を使用した読み取りを最適化します。

<div id="query_plan_optimize_lazy_materialization">
  ## query\_plan\_optimize\_lazy\_materialization
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "遅延マテリアライゼーションの最適化にクエリプランを使用する設定を追加"}]}]} />

遅延マテリアライゼーションの最適化にクエリプランを使用します。

<div id="query_plan_optimize_prewhere">
  ## query\_plan\_optimize\_prewhere
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "サポートされているストレージで、フィルターを PREWHERE 式にプッシュダウンできるようにします"}]}]} />

サポートされているストレージで、フィルターを PREWHERE 式にプッシュダウンできるようにします

<div id="query_plan_push_down_limit">
  ## query\_plan\_push\_down\_limit
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

実行プラン内で LIMIT を下位に移動する、クエリプランレベルの最適化を切り替えます。
この設定は、[query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグのためにのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_read_in_order">
  ## query\_plan\_read\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

クエリプランレベルの read in-order 最適化を有効または無効にします。
設定 [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は、将来後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_read_in_order_through_join">
  ## query\_plan\_read\_in\_order\_through\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "新しい設定"}]}]} />

JOIN演算において左側のtableから順序どおりに読み続けます。これは後続の処理で利用できます。

<div id="query_plan_remove_redundant_distinct">
  ## query\_plan\_remove\_redundant\_distinct
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "クエリプラン内の冗長な Distinct ステップを削除"}]}]} />

冗長な DISTINCT ステップを削除するクエリプランレベルの最適化の有効/無効を切り替えます。
[`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用してください。将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_remove_redundant_sorting">
  ## query\_plan\_remove\_redundant\_sorting
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "クエリプラン内の冗長なソートを削除します。たとえば、サブクエリ内の ORDER BY 句に関連するソートステップです"}]}]} />

冗長なソートステップ (たとえばサブクエリ内のもの) を削除するクエリプランレベルの最適化を有効または無効にします。
この設定は、[`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_remove_unused_columns">
  ## query\_plan\_remove\_unused\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "新しい設定。クエリプラン内の未使用カラム（入力カラムと出力カラムの両方）を削除する最適化を追加しました。"}]}]} />

クエリプランの各ステップから未使用のカラム (入力カラムと出力カラムの両方) を削除する、クエリプランレベルの最適化の有効/無効を切り替えます。
この設定は、[query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。将来的に後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_reuse_storage_ordering_for_window_functions">
  ## query\_plan\_reuse\_storage\_ordering\_for\_window\_functions
</div>

**別名**: `optimize_read_in_window_order`

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "0"},{"label": "このロジックはデフォルトで無効です。"}]}]} />

ウィンドウ関数のソート時にストレージの並び順を利用する、クエリプランレベルの最適化の有効/無効を切り替えます。
設定 [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_split_filter">
  ## query\_plan\_split\_filter
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<Note>
  これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

フィルターを式に分割するクエリプランレベルの最適化を切り替えます。
この設定は、[query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_text_index_add_hint">
  ## query\_plan\_text\_index\_add\_hint
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "新しい設定"}]}]} />

クエリプランで、転置テキスト索引から構築されるフィルタリング用のヒント (追加の述語) を追加できるようにします。

<div id="query_plan_top_k_through_join">
  ## query\_plan\_top\_k\_through\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "ソートキーが保持側のみを参照している場合に、ORDER BY ... LIMIT n を LEFT/RIGHT join を通じてプッシュダウンするクエリプランレベルの最適化を有効にする新しい設定。"}]}]} />

ソートキーが join の保持側 (LEFT/RIGHT) のカラムのみを参照している場合に、`ORDER BY ... LIMIT n` を join の下にプッシュダウンするクエリプランレベルの最適化を切り替えます。これにより、join 前に保持側の入力が生成する必要のある行数が制限されます。
この設定は、[query\_plan\_enable\_optimizations](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_plan_try_use_vector_search">
  ## query\_plan\_try\_use\_vector\_search
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "新しい設定"}]}]} />

ベクトル類似度索引の使用を試みるクエリプランレベルの最適化の有効／無効を切り替えます。
設定 [`query_plan_enable_optimizations`](#query_plan_enable_optimizations) が 1 の場合にのみ有効です。

<Note>
  これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="query_profiler_cpu_time_period_ns">
  ## query\_profiler\_cpu\_time\_period\_ns
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000000" />

[クエリプロファイラ](/ja/concepts/features/performance/troubleshoot/sampling-query-profiler) の CPU クロックタイマーの周期を設定します。このタイマーは CPU 時間のみを計測します。

設定可能な値:

* 正の整数のナノ秒数。

  推奨値:

  * 単一クエリでは 10000000 (1 秒あたり 100 回) ナノ秒以上。
  * クラスター全体のプロファイリングでは 1000000000 (1 秒に 1 回) 。

* タイマーを無効にする場合は 0。

関連項目:

* システムテーブル [trace\_log](/ja/reference/system-tables/trace_log)

<div id="query_profiler_real_time_period_ns">
  ## query\_profiler\_real\_time\_period\_ns
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000000" />

[クエリプロファイラ](/ja/concepts/features/performance/troubleshoot/sampling-query-profiler)の実クロックタイマーの周期を設定します。実クロックタイマーは経過時間を計測します。

設定可能な値:

* ナノ秒単位の正の整数。

  推奨値:

  * 単一のクエリでは 10000000 (1 秒あたり 100 回) ナノ秒以下。
  * クラスター全体のプロファイリングでは 1000000000 (1 秒に 1 回) 。

* タイマーを無効にする場合は 0。

関連項目:

* システムテーブル [trace\_log](/ja/reference/system-tables/trace_log)

Cloud でのデフォルト値: `3000000000`.

<div id="queue_max_wait_ms">
  ## queue\_max\_wait\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="0" />

同時実行リクエスト数が上限を超えた場合の、リクエストキューでの待機時間です。

<div id="rabbitmq_max_wait_ms">
  ## rabbitmq\_max\_wait\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="5000" />

再試行前に RabbitMQ から読み取る際の待機時間です。

<div id="read_backoff_max_throughput">
  ## read\_backoff\_max\_throughput
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

読み取りが遅い場合にスレッド数を減らすための設定です。読み取りスループットが1秒あたりこのバイト数を下回る場合に、イベントをカウントします。

<div id="read_backoff_min_concurrency">
  ## read\_backoff\_min\_concurrency
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

読み取りが遅い場合に、スレッドの最小数を維持しようとするための設定です。

<div id="read_backoff_min_events">
  ## read\_backoff\_min\_events
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

読み取りが遅い場合に threads の数を減らすための設定です。threads の数が減らされるまでのイベント数を指定します。

<div id="read_backoff_min_interval_between_events_ms">
  ## read\_backoff\_min\_interval\_between\_events\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="1000" />

読み取りが遅い場合にスレッド数を減らすための設定です。前回のイベントから一定時間以上経過していない場合は、そのイベントを無視します。

<div id="read_backoff_min_latency_ms">
  ## read\_backoff\_min\_latency\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="1000" />

読み取りが遅い場合にスレッド数を減らすための設定です。この時間以上かかった読み取りだけを対象にします。

<div id="read_from_distributed_cache_if_exists_otherwise_bypass_cache">
  ## read\_from\_distributed\_cache\_if\_exists\_otherwise\_bypass\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "新しい設定"}]}]} />

ClickHouse Cloud でのみ効果があります。read\_from\_filesystem\_cache\_if\_exists\_otherwise\_bypass\_cache と同じですが、分散キャッシュに対する設定です。

<div id="read_from_filesystem_cache_if_exists_otherwise_bypass_cache">
  ## read\_from\_filesystem\_cache\_if\_exists\_otherwise\_bypass\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

ファイルシステムキャッシュをパッシブモードで利用できるようにします。既存のキャッシュエントリは利用しますが、新しいエントリはキャッシュに追加しません。負荷の高いアドホッククエリでこの設定を有効にし、短時間のリアルタイムクエリでは無効のままにしておくことで、重いクエリによるキャッシュのスラッシングを防ぎ、システム全体の効率を向上させることができます。

<div id="read_from_page_cache_if_exists_otherwise_bypass_cache">
  ## read\_from\_page\_cache\_if\_exists\_otherwise\_bypass\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "ユーザー空間の page cache を追加"}]}]} />

read\_from\_filesystem\_cache\_if\_exists\_otherwise\_bypass\_cache と同様に、ユーザー空間の page cache をパッシブモードで使用します。

<div id="read_in_order_two_level_merge_threshold">
  ## read\_in\_order\_two\_level\_merge\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="100" />

主キーの順序でマルチスレッド読み取りを行う際に、preliminary merge ステップを実行するために読み取る最小のパーツ数。

<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 中に各 block の読み取り後に仮想行を出力し、MergingSortedTransform でより頻繁にソースの優先順位を付け替えられるようにします。"}]}]} />

`read_in_order_use_virtual_row` とあわせて有効にすると、各 block の読み取り後に仮想行を出力します (各パーツの先頭時のみではありません) 。
これにより、`MergingSortedTransform` はソースの優先順位をより頻繁に付け替えられるようになり、下流の filter によって多くの行が破棄され、データがパーツ間で偏って分散している場合に有効です。
なお、これを有効にすると、読み取り時の `read_in_order_use_buffering` の最適化と preliminary merge (`read_in_order_two_level_merge_threshold`) は無効になります。

<div id="read_overflow_mode">
  ## read\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

制限を超えた場合の動作。

<div id="read_overflow_mode_leaf">
  ## read\_overflow\_mode\_leaf
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

読み込まれたデータ量が leaf 側の制限のいずれかを超えた場合の動作を設定します。

指定可能な値:

* `throw`: 例外をスローします (デフォルト) 。
* `break`: クエリの実行を停止し、途中までの結果を返します。

<div id="read_priority">
  ## read\_priority
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

ローカルfilesystemまたはリモートfilesystemからデータを読み取る際の優先度。ローカルfilesystemでは 'pread\_threadpool' method、リモートfilesystemでは `threadpool` method の場合にのみサポートされます。

<div id="read_through_distributed_cache">
  ## read\_through\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "ClickHouse Cloud向けの設定"}]}]} />

ClickHouse Cloud でのみ有効です。分散キャッシュからの読み取りを許可します

<div id="readonly">
  ## readonly
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

0 - read-only の制限はありません。1 - 読み取りリクエストのみ、および明示的に許可された設定の変更のみ。2 - 読み取りリクエストのみ、および 'readonly' 設定を除く設定の変更のみ。

<div id="receive_data_timeout_ms">
  ## receive\_data\_timeout\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="2000" />

レプリカから最初のデータパケット、または進捗があることを示す Progress パケットを受信する際の接続タイムアウト

<div id="receive_timeout">
  ## receive\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="300" />

ネットワークからデータを受信する際のタイムアウト時間です。単位は秒です。この時間内に1バイトも受信されなかった場合、例外が発生します。クライアントでこの設定を行うと、サーバー側の対応する接続先でも、そのソケットに対して `send_timeout` が設定されます。

<div id="recursive_cte_max_steps_in_type_inference">
  ## recursive\_cte\_max\_steps\_in\_type\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10"},{"label": "反復的な getLeastSupertype により recursive CTE のカラム型を推論する際の最大反復回数"}]}]} />

recursive CTE でカラム型を推論する際の最大反復回数です。カラム型は、非再帰側と再帰側の UNION ALL に対して `getLeastSupertype` を繰り返し適用し、収束するまで求められます。0 に設定すると型の拡張が無効になり、非再帰部分の型のみが使用されます。

<div id="regexp_dict_allow_hyperscan">
  ## regexp\_dict\_allow\_hyperscan
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Hyperscanライブラリを使用する regexp\_tree Dictionary を有効にします。

<div id="regexp_dict_flag_case_insensitive">
  ## regexp\_dict\_flag\_case\_insensitive
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

regexp\_tree Dictionary に対して、大文字と小文字を区別しないマッチングを使用します。個々の expression では、(?i) および (?-i) を使って上書きできます。

<div id="regexp_dict_flag_dotall">
  ## regexp\_dict\_flag\_dotall
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

regexp\_tree Dictionary で、'.' が改行文字にも一致するようにします。

<div id="regexp_max_matches_per_row">
  ## regexp\_max\_matches\_per\_row
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

1行あたり、単一の正規表現で許可される最大一致数を設定します。[extractAllGroupsHorizontal](/ja/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal) 関数で貪欲な正規表現を使用する際のメモリ過負荷を防ぐために使用します。

設定可能な値:

* 正の整数。

<div id="reject_expensive_hyperscan_regexps">
  ## reject\_expensive\_hyperscan\_regexps
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

hyperscan での評価に高いコストがかかる可能性が高いパターンを拒否します (NFA の状態爆発による)

<div id="remerge_sort_lowered_memory_bytes_ratio">
  ## remerge\_sort\_lowered\_memory\_bytes\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="2" />

remerge 後のメモリ使用量がこの比率まで減少しない場合、remerge は無効化されます。

<div id="remote_filesystem_read_method">
  ## remote\_filesystem\_read\_method
</div>

<SettingsInfoBlock type="String" default_value="threadpool" />

リモートファイルシステムからデータを読み取る方法です。指定できる値: read、threadpool。

<div id="remote_filesystem_read_prefetch">
  ## remote\_filesystem\_read\_prefetch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

リモートファイルシステムからデータを読み取る際に、プリフェッチを使用するかどうか。

<div id="remote_fs_read_backoff_max_tries">
  ## remote\_fs\_read\_backoff\_max\_tries
</div>

<SettingsInfoBlock type="UInt64" default_value="5" />

バックオフ付き読み取りの最大試行回数

<div id="remote_fs_read_max_backoff_ms">
  ## remote\_fs\_read\_max\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

リモートディスクからデータを読み取ろうとする際の最大待機時間

<div id="remote_read_min_bytes_for_seek">
  ## remote\_read\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="4194304" />

ignore を使った読み取りではなく seek を行うために、リモート読み取り (url、S3) で必要な最小バイト数。

<div id="rename_files_after_processing">
  ## rename\_files\_after\_processing
</div>

* **Type:** String

* **デフォルト値:** 空文字列

この設定では、`file` テーブル関数で処理したファイルのリネームパターンを指定できます。このオプションを設定すると、`file` テーブル関数で読み取られたすべてのファイルは、処理が正常に完了した場合に限り、指定したプレースホルダーを含むパターンに従ってリネームされます。

<div id="placeholders">
  ### プレースホルダー
</div>

* `%a` — 元のファイル名全体 (例: "sample.csv") 。
* `%f` — 拡張子を除いた元のファイル名 (例: "sample") 。
* `%e` — ドットを含む元の拡張子 (例: ".csv") 。
* `%t` — タイムスタンプ (マイクロ秒単位) 。
* `%%` — パーセント記号 ("%") 。

<div id="example">
  ### 例
</div>

* オプション: `--rename_files_after_processing="processed_%f_%t%e"`

* クエリ: `SELECT * FROM file('sample.csv')`

`sample.csv` の読み取りに成功すると、ファイルは `processed_sample_1683473210851438.csv` にリネームされます

<div id="replace_running_query">
  ## replace\_running\_query
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

HTTPインターフェイスを使用する場合は、`query_id` パラメータを渡せます。これは、クエリ識別子として機能する任意の文字列です。
この時点で、同じユーザーによる同じ `query_id` のクエリがすでに存在する場合の動作は、`replace_running_query` パラメータによって決まります。

`0` (デフォルト) – 例外をスローします (同じ `query_id` のクエリがすでに実行中の場合、新しいクエリの実行は許可されません) 。

`1` – 古いクエリをキャンセルし、新しいクエリの実行を開始します。

セグメンテーション条件のサジェストを実装する場合は、このパラメータを 1 に設定してください。次の文字が入力された時点で古いクエリがまだ終了していなければ、そのクエリをキャンセルする必要があります。

<div id="replace_running_query_max_wait_ms">
  ## replace\_running\_query\_max\_wait\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="5000" />

[replace\_running\_query](#replace_running_query) 設定が有効な場合に、同じ `query_id` を持つ実行中のクエリが終了するまでの待機時間です。

設定可能な値:

* 正の整数。
* 0 — サーバーがすでに同じ `query_id` を持つクエリを実行している場合、新しいクエリの実行を許可せず、例外を発生させます。

<div id="replication_wait_for_inactive_replica_timeout">
  ## replication\_wait\_for\_inactive\_replica\_timeout
</div>

<SettingsInfoBlock type="Int64" default_value="120" />

非アクティブなレプリカが [`ALTER`](/ja/reference/statements/alter)、[`OPTIMIZE`](/ja/reference/statements/optimize)、または [`TRUNCATE`](/ja/reference/statements/truncate) クエリを実行するまで待機する時間 (秒単位) を指定します。

設定可能な値:

* `0` — 待機しません。
* 負の整数 — 無制限に待機します。
* 正の整数 — 待機する秒数です。

<div id="restore_replace_external_dictionary_source_to_null">
  ## restore\_replace\_external\_dictionary\_source\_to\_null
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "新しい設定"}]}]} />

復元時に外部 Dictionary ソースを Null に置き換えます。テスト用途に便利です

<div id="restore_replace_external_engines_to_null">
  ## restore\_replace\_external\_engines\_to\_null
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "新しい設定"}]}]} />

テスト用です。外部接続を開始しないよう、すべての外部エンジンをNullに置き換えます。

<div id="restore_replace_external_table_functions_to_null">
  ## restore\_replace\_external\_table\_functions\_to\_null
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "新しい設定"}]}]} />

テスト用です。外部接続を開始しないよう、すべての外部テーブル関数を Null に置き換えます。

<div id="restore_replicated_merge_tree_to_shared_merge_tree">
  ## restore\_replicated\_merge\_tree\_to\_shared\_merge\_tree
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "0"},{"label": "新しい設定"}]}]} />

RESTORE 時に、テーブルエンジンを Replicated*MergeTree から Shared*MergeTree に置き換えます。

Cloud でのデフォルト値: `1`.

<div id="result_overflow_mode">
  ## result\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

Cloud でのデフォルト値: `throw`

結果のサイズがいずれかの制限を超えた場合の動作を設定します。

設定可能な値:

* `throw`: 例外をスローします (デフォルト) 。
* `break`: クエリの実行を停止し、あたかも
  ソースデータが尽きたかのように部分的な結果を返します。

`break` の使用は LIMIT の使用に似ています。`break` は
ブロックレベルでのみ実行を中断します。つまり、返される行数は
[`max_result_rows`](/ja/reference/settings/session-settings#max_result_rows) より多くなり、[`max_block_size`](/ja/reference/settings/session-settings#max_block_size)
の倍数となり、[`max_threads`](/ja/reference/settings/session-settings#max_threads) に依存します。

**例**

```sql title="Query" theme={null}
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';

SELECT *
FROM numbers_mt(100000)
FORMAT Null;
```

```text title="Result" theme={null}
6666 rows in set. ...
```

<div id="rewrite_count_distinct_if_with_count_distinct_implementation">
  ## rewrite\_count\_distinct\_if\_with\_count\_distinct\_implementation
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.8"},{"label": "1"},{"label": "`countDistinctIf` を `count_distinct_implementation` 設定を使って書き換え"}]}]} />

`countDistcintIf` を [count\_distinct\_implementation](#count_distinct_implementation) 設定を使って書き換えることを許可します。

設定可能な値:

* true — 許可します。
* false — 許可しません。

<div id="rewrite_in_to_join">
  ## rewrite\_in\_to\_join
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "新しい実験的設定"}]}]} />

'x IN subquery' のような式を JOIN に書き換えます。これは、JOIN の並べ替えによるクエリ全体の最適化に役立つ場合があります。

<div id="rows_before_aggregation">
  ## rows\_before\_aggregation
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "rows_before_aggregation 統計の正確な値を返します。これは、集約前に読み取られた行数を表します"}]}]} />

有効にすると、ClickHouse は rows\_before\_aggregation 統計の正確な値を返します。これは、集約前に読み取られた行数を表し

<div id="s3_allow_multipart_copy">
  ## s3\_allow\_multipart\_copy
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "新しい設定"}]}]} />

S3 でのマルチパートコピーを有効にします。

<div id="s3_allow_parallel_part_upload">
  ## s3\_allow\_parallel\_part\_upload
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

S3 のマルチパートアップロードで複数のスレッドを使用します。これにより、メモリ使用量がわずかに増加する可能性があります

<div id="s3_check_objects_after_upload">
  ## s3\_check\_objects\_after\_upload
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

アップロードが正常に完了したことを確認するため、S3 にアップロードされた各オブジェクトに対して HEAD リクエストを実行します

<div id="s3_connect_timeout_ms">
  ## s3\_connect\_timeout\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000"},{"label": "S3接続タイムアウト用の新しい専用設定を導入"}]}]} />

S3ディスクのホストへの接続タイムアウト。

<div id="s3_create_new_file_on_insert">
  ## s3\_create\_new\_file\_on\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

S3エンジンテーブルで、挿入のたびに新しいファイルを作成するかどうかを制御します。有効にすると、各挿入時に、次のパターンのようなキーを持つ新しい S3 オブジェクトが作成されます。

initial: `data.Parquet.gz` -> `data.1.Parquet.gz` -> `data.2.Parquet.gz`, etc.

設定可能な値:

* 0 — `INSERT` クエリは新しいファイルを作成します。ファイルがすでに存在し、s3\_truncate\_on\_insert が設定されていない場合は失敗します。
* 1 — s3\_truncate\_on\_insert が設定されていない場合、`INSERT` クエリは各挿入時に接尾辞を使って新しいファイルを作成します (2 回目以降) 。

詳しくは[こちら](/ja/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#inserting-data)を参照してください。

<div id="s3_disable_checksum">
  ## s3\_disable\_checksum
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

S3 にファイルを送信する際にチェックサムを計算しません。これにより、ファイルに対する過剰な処理パスを避けられるため、書き込みが高速になります。これは通常は安全です。というのも、MergeTree テーブルのデータはどのみち ClickHouse 側ですでにチェックサムによって保護されており、HTTPS で S3 にアクセスする場合は、TLS レイヤーがネットワーク転送中の完全性をすでに提供するためです。ただし、S3 で追加のチェックサムを使用すると、多層防御になります。

<div id="s3_ignore_file_doesnt_exist">
  ## s3\_ignore\_file\_doesnt\_exist
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "要求されたファイルが存在しない場合に、S3 table engine で例外を発生させる代わりに 0 行を返せるようにします"}]}]} />

特定のキーの読み取り時に、ファイルが存在しない場合はその不在を無視します。

設定可能な値:

* 1 — `SELECT` は空の結果を返します。
* 0 — `SELECT` は例外を発生させます。

<div id="s3_list_object_keys_size">
  ## s3\_list\_object\_keys\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

ListObject リクエストで一度に返されるファイルの最大数

<div id="s3_max_connections">
  ## s3\_max\_connections
</div>

<SettingsInfoBlock type="UInt64" default_value="1024" />

サーバーごとの最大接続数。

<div id="s3_max_get_burst">
  ## s3\_max\_get\_burst
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

1 秒あたりのリクエスト制限に達するまでに同時に発行できるリクエストの最大数。デフォルト値は 0 で、`s3_max_get_rps` と同じです

<div id="s3_max_get_rps">
  ## s3\_max\_get\_rps
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

スロットリングが適用されるまでの、S3 GET リクエストの1秒あたりの上限数です。0 は無制限を意味します。

<div id="s3_max_inflight_parts_for_one_file">
  ## s3\_max\_inflight\_parts\_for\_one\_file
</div>

<SettingsInfoBlock type="UInt64" default_value="20" />

マルチパートアップロードリクエストで同時にアップロードされるパーツの最大数です。0 は無制限を意味します。

<div id="s3_max_part_number">
  ## s3\_max\_part\_number
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "10000"},{"label": "S3 アップロードパートの最大パート番号"}]}]} />

S3 アップロードパートの最大パート番号。

<div id="s3_max_put_burst">
  ## s3\_max\_put\_burst
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

1 秒あたりのリクエスト数制限に達するまでに同時発行できるリクエストの最大数。デフォルト値 (0) は `s3_max_put_rps` と同じです

<div id="s3_max_put_rps">
  ## s3\_max\_put\_rps
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

スロットリングが適用される前の、S3 PUT request の1秒あたりのレート上限です。0 は無制限を意味します。

<div id="s3_max_single_operation_copy_size">
  ## s3\_max\_single\_operation\_copy\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="33554432" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "33554432"},{"label": "s3 での単一コピー操作の最大サイズ"}]}]} />

s3 での単一コピー操作の最大サイズです。この設定は、s3\_allow\_multipart\_copy が true の場合にのみ使用されます。

<div id="s3_max_single_part_upload_size">
  ## s3\_max\_single\_part\_upload\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="33554432" />

S3 へのシングルパートアップロードでアップロードできるオブジェクトの最大サイズです。

<div id="s3_max_single_read_retries">
  ## s3\_max\_single\_read\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

単一のS3読み取り時の最大再試行回数。

<div id="s3_max_unexpected_write_error_retries">
  ## s3\_max\_unexpected\_write\_error\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

S3への書き込み中に予期しないエラーが発生した場合の、最大再試行回数。

<div id="s3_max_upload_part_size">
  ## s3\_max\_upload\_part\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="5368709120" />

S3 へのマルチパートアップロード時にアップロードするパートの最大サイズ。

<div id="s3_min_upload_part_size">
  ## s3\_min\_upload\_part\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="16777216" />

S3 へのマルチパートアップロード時にアップロードするパートの最小サイズ。

<div id="s3_path_filter_limit">
  ## s3\_path\_filter\_limit
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1000"},{"label": "新しい設定"}]}]} />

glob リストの代わりにファイルのイテレーションに使用するために、クエリフィルターから抽出できる `_path` 値の最大数です。
0 は無効を意味します。

<div id="s3_request_timeout_ms">
  ## s3\_request\_timeout\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="30000" />

S3 との間でデータを送受信する際のアイドルタイムアウトです。1 回の TCP 読み取りまたは書き込み呼び出しがこの時間を超えてブロックされると失敗します。

<div id="s3_skip_empty_files">
  ## s3\_skip\_empty\_files
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "より良いUXの提供につながることを期待しています"}]}]} />

[S3](/ja/reference/engines/table-engines/integrations/s3)エンジンのテーブルで、空のファイルをスキップするかどうかを設定します。

設定可能な値:

* 0 — 空のファイルが要求されたフォーマットと互換性がない場合、`SELECT` は例外をスローします。
* 1 — `SELECT` は空のファイルに対して空の結果を返します。

<div id="s3_slow_all_threads_after_network_error">
  ## s3\_slow\_all\_threads\_after\_network\_error
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "新しい設定"}]}]} />

`true` に設定すると、同じバックアップエンドポイントに対して S3 リクエストを実行しているすべてのスレッドは、
いずれか 1 つの S3 リクエストで、ソケットタイムアウトなどの再試行可能なネットワークエラーが発生すると、
その後は処理速度が抑制されます。
`false` に設定すると、各スレッドは他のスレッドとは独立して S3 リクエストのバックオフを処理します。

<div id="s3_strict_upload_part_size">
  ## s3\_strict\_upload\_part\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

S3 へのマルチパートアップロード時にアップロードする各パートの厳密なサイズ (一部の実装では可変サイズのパートをサポートしていません) 。

<div id="s3_throw_on_zero_files_match">
  ## s3\_throw\_on\_zero\_files\_match
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

ListObjects リクエストで一致するファイルが 1 つも見つからない場合、エラーをスローします

<div id="s3_truncate_on_insert">
  ## s3\_truncate\_on\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

S3 エンジンのテーブルで、INSERT の前に truncate を行うかどうかを有効または無効にします。無効な場合、S3 オブジェクトがすでに存在すると、INSERT を試行した際に例外が発生します。

設定可能な値:

* 0 — `INSERT` クエリは新しいファイルを作成します。ファイルがすでに存在し、s3\_create\_new\_file\_on\_insert が設定されていない場合は失敗します。
* 1 — `INSERT` クエリは、ファイルの既存の内容を新しいデータで置き換えます。

詳しくは[こちら](/ja/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#inserting-data)を参照してください。

<div id="s3_upload_part_size_multiply_factor">
  ## s3\_upload\_part\_size\_multiply\_factor
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

S3 への1回の書き込みで `s3_multiply_parts_count_threshold` 個のパーツがアップロードされるたびに、`s3_min_upload_part_size` にこの係数を掛けます。

<div id="s3_upload_part_size_multiply_parts_count_threshold">
  ## s3\_upload\_part\_size\_multiply\_parts\_count\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="500" />

この数のパーツが S3 にアップロードされるたびに、s3\_min\_upload\_part\_size は s3\_upload\_part\_size\_multiply\_factor 倍されます。

<div id="s3_uri_style">
  ## s3\_uri\_style
</div>

<SettingsInfoBlock type="S3UriStyle" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "auto"},{"label": "新しい設定"}]}]} />

S3 endpoint のスタイルを指定します。設定可能な値: auto、virtual\_hosted、path。

<div id="s3_use_adaptive_timeouts">
  ## s3\_use\_adaptive\_timeouts
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

`true` に設定すると、すべての S3 リクエストで、最初の 2 回の試行は短めの送受信タイムアウトで実行されます。
`false` に設定すると、すべての試行が同じタイムアウトで実行されます。

<div id="s3_validate_request_settings">
  ## s3\_validate\_request\_settings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "S3 リクエスト設定の検証を無効化できるようになりました"}]}]} />

S3 リクエスト設定の検証を有効にします。
設定可能な値:

* 1 — 設定を検証します。
* 0 — 設定を検証しません。

<div id="s3queue_default_zookeeper_path">
  ## s3queue\_default\_zookeeper\_path
</div>

<SettingsInfoBlock type="String" default_value="/clickhouse/s3queue/" />

S3QueueエンジンのデフォルトのZooKeeperパスプレフィックス

<div id="s3queue_enable_logging_to_s3queue_log">
  ## s3queue\_enable\_logging\_to\_s3queue\_log
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

system.s3queue\_log への書き込みを有効にします。テーブルごとに、テーブル設定でこの値を上書きできます

<div id="s3queue_keeper_fault_injection_probability">
  ## s3queue\_keeper\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "0"},{"label": "新しい設定"}]}]} />

S3Queue に対する Keeper のフォールト挿入確率。

<div id="s3queue_migrate_old_metadata_to_buckets">
  ## s3queue\_migrate\_old\_metadata\_to\_buckets
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "新しい設定"}]}]} />

S3Queueテーブルの古いメタデータ構造を新しい構造に移行します

<div id="schema_inference_cache_require_modification_time_for_url">
  ## schema\_inference\_cache\_require\_modification\_time\_for\_url
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

最終更新時刻を検証したうえで、URL に対して cache 内のスキーマを使用します (Last-Modified header を持つ URL 向け)

<div id="schema_inference_use_cache_for_azure">
  ## schema\_inference\_use\_cache\_for\_azure
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Azure テーブル関数の使用時に、スキーマ推論で cache を使用します

<div id="schema_inference_use_cache_for_file">
  ## schema\_inference\_use\_cache\_for\_file
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

file テーブル関数の使用時に、スキーマ推論で cache を使用します

<div id="schema_inference_use_cache_for_hdfs">
  ## schema\_inference\_use\_cache\_for\_hdfs
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

hdfs table functio の使用時に、スキーマ推論で cache を使用します。

<div id="schema_inference_use_cache_for_s3">
  ## schema\_inference\_use\_cache\_for\_s3
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

S3 table functio の使用時に、スキーマ推論で cache を使用します

<div id="schema_inference_use_cache_for_url">
  ## schema\_inference\_use\_cache\_for\_url
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

url table functio の使用時に、スキーマ推論で cache を使用します

<div id="secondary_indices_enable_bulk_filtering">
  ## secondary\_indices\_enable\_bulk\_filtering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "データスキッピングインデックスによるフィルタリングの新しいアルゴリズム"}]}]} />

インデックスの一括フィルタリングアルゴリズムを有効にします。通常はこちらのほうが常に優れている想定ですが、互換性の確保と動作制御のためにこの設定を用意しています。

<div id="select_sequential_consistency">
  ## select\_sequential\_consistency
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<Note>
  この設定は SharedMergeTree と ReplicatedMergeTree で動作が異なります。SharedMergeTree における `select_sequential_consistency` の動作の詳細については、[SharedMergeTree consistency](/ja/products/cloud/features/infrastructure/shared-merge-tree#consistency) を参照してください。
</Note>

`SELECT` クエリに対する逐次整合性を有効または無効にします。使用するには、`insert_quorum_parallel` を無効にする必要があります (デフォルトでは有効です) 。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

使用方法

逐次整合性が有効な場合、ClickHouse は、`insert_quorum` を使用して以前に実行されたすべての `INSERT` クエリのデータを含むレプリカに対してのみ、クライアントによる `SELECT` クエリの実行を許可します。クライアントが不完全なレプリカを参照すると、ClickHouse は例外を生成します。`SELECT` クエリには、まだレプリカのクォーラムに書き込まれていないデータは含まれません。

`insert_quorum_parallel` が有効な場合 (デフォルト) 、`select_sequential_consistency` は機能しません。これは、並列の `INSERT` クエリが異なるクォーラムレプリカの集合に書き込まれる可能性があるため、1 つのレプリカがすべての書き込みを受け取っている保証がないからです。

関連項目:

* [insert\_quorum](#insert_quorum)
* [insert\_quorum\_timeout](#insert_quorum_timeout)
* [insert\_quorum\_parallel](#insert_quorum_parallel)

<div id="send_logs_level">
  ## send\_logs\_level
</div>

<SettingsInfoBlock type="LogsLevel" default_value="fatal" />

指定した最小レベル以上のサーバーのテキストログをクライアントに送信します。有効な値: 'trace', 'debug', 'information', 'warning', 'error', 'fatal', 'none'

<div id="send_logs_source_regexp">
  ## send\_logs\_source\_regexp
</div>

指定した正規表現に一致するログソース名を持つserverのテキストログを送信します。空の場合は、すべてのソースが対象です。

<div id="send_profile_events">
  ## send\_profile\_events
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "新しい設定。ProfileEvents をクライアントに送信するかどうか。"}]}]} />

クライアントへの [ProfileEvents](/ja/resources/develop-contribute/native-protocol/server#profile-events) パケットの送信を有効または無効にします。

profile events を必要としないクライアントのネットワークトラフィックを削減するため、この設定は無効にできます。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="send_progress_in_http_headers">
  ## send\_progress\_in\_http\_headers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

`clickhouse-server` のレスポンスで、`X-ClickHouse-Progress` HTTP レスポンスヘッダーの有効/無効を切り替えます。

詳細については、[HTTP インターフェイスの説明](/ja/concepts/features/interfaces/http)を参照してください。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="send_table_structure_on_insert_with_inline_data">
  ## send\_table\_structure\_on\_insert\_with\_inline\_data
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "インラインデータを含む INSERT クエリに対して、サーバーがテーブル構造を送信するかどうかを制御する新しい設定。"}]}]} />

無効になっていて、かつ INSERT クエリにインラインデータが含まれている場合、サーバーはネイティブプロトコル経由でテーブル構造とカラムのデフォルト値をクライアントに返しません。代わりに、サーバー自身がインラインデータを解析します。これにより、ネイティブプロトコル経由で小規模な INSERT を多数実行する際のパフォーマンスが向上することがあります。

<div id="send_timeout">
  ## send\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="300" />

ネットワークにデータを送信する際のタイムアウトです。単位は秒です。クライアントがデータを送信する必要があるにもかかわらず、この間隔内に1バイトも送信できない場合は、例外が発生します。クライアント側でこの設定を行うと、ソケットの `receive_timeout` もサーバー側の対応する接続先に設定されます。

<div id="serialize_query_plan">
  ## serialize\_query\_plan
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "0"},{"label": "NewSetting"}]}]} />

分散処理用にクエリプランをシリアル化します

<div id="serialize_string_in_memory_with_zero_byte">
  ## serialize\_string\_in\_memory\_with\_zero\_byte
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "新しい設定"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "1"},{"label": "新しい設定"}]}]} />

集約中に、String 型の値を末尾にゼロバイトを付けてシリアライズします。互換性のないバージョンが混在するクラスターにクエリする際の互換性を維持するには、有効にしてください。

<div id="session_timezone">
  ## session\_timezone
</div>

現在の session またはクエリの暗黙のタイムゾーンを設定します。
暗黙のタイムゾーンとは、明示的にタイムゾーンが指定されていない `DateTime`/`DateTime64` 型の値に適用されるタイムゾーンです。
この設定は、グローバルに設定された (server レベルの) 暗黙のタイムゾーンよりも優先されます。
値 `&#39;&#39;` (空文字列) は、現在の session またはクエリの暗黙のタイムゾーンが [server time zone](/ja/reference/settings/server-settings/settings#timezone) と同じであることを意味します。

関数 `timeZone()` と `serverTimeZone()` を使用すると、session のタイムゾーンと server のタイムゾーンを取得できます。

設定可能な値:

* `system.time_zones` に含まれる任意のタイムゾーン名 (例: `Europe/Berlin`、`UTC`、`Zulu`)

例:

```sql theme={null}
SELECT timeZone(), serverTimeZone() FORMAT CSV

"Europe/Berlin","Europe/Berlin"
```

```sql theme={null}
SELECT timeZone(), serverTimeZone() SETTINGS session_timezone = 'Asia/Novosibirsk' FORMAT CSV

"Asia/Novosibirsk","Europe/Berlin"
```

タイムゾーンが明示的に指定されていない内側の DateTime に、セッションのタイムゾーン 'America/Denver' を割り当てます。

```sql theme={null}
SELECT toDateTime64(toDateTime64('1999-12-12 23:23:23.123', 3), 3, 'Europe/Zurich') SETTINGS session_timezone = 'America/Denver' FORMAT TSV

1999-12-13 07:23:23.123
```

<Warning>
  DateTime/DateTime64 を parse するすべての関数が `session_timezone` に従うわけではありません。そのため、気付きにくい error につながることがあります。
  以下の例と説明を参照してください。
</Warning>

```sql theme={null}
CREATE TABLE test_tz (`d` DateTime('UTC')) ENGINE = Memory AS SELECT toDateTime('2000-01-01 00:00:00', 'UTC');

SELECT *, timeZone() FROM test_tz WHERE d = toDateTime('2000-01-01 00:00:00') SETTINGS session_timezone = 'Asia/Novosibirsk'
0 rows in set.

SELECT *, timeZone() FROM test_tz WHERE d = '2000-01-01 00:00:00' SETTINGS session_timezone = 'Asia/Novosibirsk'
┌───────────────────d─┬─timeZone()───────┐
│ 2000-01-01 00:00:00 │ Asia/Novosibirsk │
└─────────────────────┴──────────────────┘
```

これは、パース処理のパイプラインが異なるために発生します。

* 最初の `SELECT` クエリで、タイムゾーンを明示的に指定せずに使用した `toDateTime()` は、設定 `session_timezone` とグローバルタイムゾーンに従います。
* 2 つ目のクエリでは、DateTime は String からパースされ、既存のカラム `d` の型とタイムゾーンを引き継ぎます。そのため、設定 `session_timezone` とグローバルタイムゾーンは反映されません。

**関連項目**

* [timezone](/ja/reference/settings/server-settings/settings#timezone)

<div id="set_overflow_mode">
  ## set\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

データ量がいずれかの上限を超えた場合の動作を設定します。

設定可能な値:

* `throw`: 例外をスローします (デフォルト) 。
* `break`: クエリの実行を停止し、ソースデータが尽きた場合と同様に、
  部分的な結果を返します。

<div id="shared_merge_tree_sequential_consistency_initial_parts_update_backoff_ms">
  ## shared\_merge\_tree\_sequential\_consistency\_initial\_parts\_update\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "50"},{"label": "SharedMergeTree で逐次整合性を使用するクエリで散発的に発生する UNFINISHED エラーを減らすための新しい設定。"}]}]} />

`SharedMergeTree` で `select_sequential_consistency` を使用する場合の、パーツ更新時の初期バックオフ (ミリ秒) 。ClickHouse Cloud でのみ利用できます。

<div id="shared_merge_tree_sequential_consistency_max_parts_update_backoff_ms">
  ## shared\_merge\_tree\_sequential\_consistency\_max\_parts\_update\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1000"},{"label": "SharedMergeTree の逐次整合性を使用するクエリで断続的に発生する UNFINISHED エラーを減らすための新しい設定。"}]}]} />

`SharedMergeTree` で `select_sequential_consistency` を使用する場合の、パーツ更新における最大バックオフ時間 (ミリ秒) 。ClickHouse Cloud でのみ利用できます。

<div id="shared_merge_tree_sequential_consistency_parts_update_max_retries">
  ## shared\_merge\_tree\_sequential\_consistency\_parts\_update\_max\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "10"},{"label": "SharedMergeTree で逐次整合性を有効にしたクエリにおける散発的な UNFINISHED エラーを減らすための新しい設定。"}]}]} />

`SharedMergeTree` で `select_sequential_consistency` を使用する際のパーツ更新の最大再試行回数。ClickHouse Cloud でのみ利用できます。

<div id="shared_merge_tree_sync_parts_on_partition_operations">
  ## shared\_merge\_tree\_sync\_parts\_on\_partition\_operations
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "新しい設定。デフォルトでは、パーツは常に同期されます"}]}]} />

SMT テーブルで MOVE|REPLACE|ATTACH パーティション操作を行った後、データパーツ群を自動的に同期します。Cloud のみ

<div id="short_circuit_function_evaluation">
  ## short\_circuit\_function\_evaluation
</div>

<SettingsInfoBlock type="ShortCircuitFunctionEvaluation" default_value="enable" />

[if](/ja/reference/functions/regular-functions/conditional-functions#if)、[multiIf](/ja/reference/functions/regular-functions/conditional-functions#multiIf)、[and](/ja/reference/functions/regular-functions/logical-functions#and)、および [or](/ja/reference/functions/regular-functions/logical-functions#or) 関数を、[短絡評価](https://en.wikipedia.org/wiki/Short-circuit_evaluation) に従って評価できるようにします。これにより、これらの関数内の複雑な式の実行を最適化し、起こり得る例外 (想定されない場合のゼロ除算など) を防ぐのに役立ちます。

設定可能な値:

* `enable` — 短絡関数評価に適した関数 (例外をスローする可能性がある、または計算負荷が高い関数) で有効にします。
* `force_enable` — すべての関数で短絡関数評価を有効にします。
* `disable` — 短絡関数評価を無効にします。

<div id="short_circuit_function_evaluation_for_nulls">
  ## short\_circuit\_function\_evaluation\_for\_nulls
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "すべての引数が非NULL値である行に対してのみ、Nullable な引数を持つ関数の実行を許可します"}]}]} />

いずれかの引数がNULLの場合にNULLを返す関数の評価を最適化します。関数の引数に含まれるNULL値の割合がshort\_circuit\_function\_evaluation\_for\_nulls\_thresholdを超えると、システムは関数を行単位で評価する処理をスキップします。代わりに、すべての行に対して即座にNULLを返すことで、不要な計算を回避します。

<div id="short_circuit_function_evaluation_for_nulls_threshold">
  ## short\_circuit\_function\_evaluation\_for\_nulls\_threshold
</div>

<SettingsInfoBlock type="Double" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "すべての引数が非 NULL 値である行に対してのみ Nullable 引数を持つ関数を実行するための、NULL 値の比率のしきい値です。設定 short_circuit_function_evaluation_for_nulls が有効な場合に適用されます。"}]}]} />

すべての引数が非 NULL 値である行に対してのみ Nullable 引数を持つ関数を実行するための、NULL 値の比率のしきい値です。設定 short\_circuit\_function\_evaluation\_for\_nulls が有効な場合に適用されます。
NULL 値を含む行の比率が全行数に対してこのしきい値を超えると、それらの NULL 値を含む行は評価されません。

<div id="show_data_lake_catalogs_in_system_tables">
  ## show\_data\_lake\_catalogs\_in\_system\_tables
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "新しい設定"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "デフォルトでシステムテーブル内のカタログを無効化"}]}]} />

システムテーブルにデータレイクカタログを表示できるようにします。

<div id="show_processlist_include_internal">
  ## show\_processlist\_include\_internal
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "新しい設定"}]}]} />

`SHOW PROCESSLIST` クエリの出力に内部の補助プロセスを表示します。

内部プロセスには、Dictionary の再読み込み、リフレッシャブルmaterialized view の再読み込み、`SHOW ...` クエリで実行される補助的な `SELECT`、破損したテーブルに対処するために内部で実行される補助的な `CREATE DATABASE ...` クエリなどが含まれます。

<div id="show_table_uuid_in_table_create_query_if_not_nil">
  ## show\_table\_uuid\_in\_table\_create\_query\_if\_not\_nil
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.7"},{"label": "0"},{"label": "Engine=Atomic の CREATE クエリでテーブルの UID を表示しないよう変更しました"}]}]} />

`SHOW TABLE` クエリの表示方法を設定します。

設定可能な値:

* 0 — クエリはテーブル UUID なしで表示されます。
* 1 — クエリはテーブル UUID 付きで表示されます。

<div id="single_join_prefer_left_table">
  ## single\_join\_prefer\_left\_table
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

単一の JOIN で識別子が曖昧な場合は、左側のテーブルを優先します

<div id="skip_redundant_aliases_in_udf">
  ## skip\_redundant\_aliases\_in\_udf
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "有効にすると、同じテーブル内の複数のマテリアライズドカラムに対して、同じユーザー定義関数を複数回使用できるようになります。"}]}]} />

ユーザー定義関数では、使いやすくするために冗長な別名は使用されず (置換されず) 、

設定可能な値:

* 1 — UDF では別名がスキップされます (置換されます) 。
* 0 — UDF では別名はスキップされません (置換されません) 。

**例**

有効時と無効時の違い:

クエリ:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 0;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

結果:

```text theme={null}
SELECT ((4 + 2) + 1 AS y, y + 2)
```

クエリ:

```sql theme={null}
SET skip_redundant_aliases_in_udf = 1;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));

EXPLAIN SYNTAX SELECT test_03274(4 + 2);
```

結果:

```text theme={null}
SELECT ((4 + 2) + 1, ((4 + 2) + 1) + 2)
```

<div id="skip_unavailable_shards">
  ## skip\_unavailable\_shards
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

利用できない分片を通知せずにスキップするかどうかを切り替えます。

分片は、そのすべてのレプリカが利用できない場合に利用不可と見なされます。レプリカが利用できないのは、次の場合です。

* ClickHouse が何らかの理由でレプリカに接続できない場合。

  ClickHouse はレプリカへの接続時に複数回試行します。これらの試行がすべて失敗すると、そのレプリカは利用不可と見なされます。

* レプリカの名前を DNS で解決できない場合。

  レプリカのホスト名を DNS で解決できない場合は、次のような状況が考えられます。

  * レプリカのホストに DNS レコードがありません。これは、たとえば [Kubernetes](https://kubernetes.io) のような動的 DNS を使用するシステムで発生することがあり、ダウンタイム中はノードの名前解決ができなくても、エラーではありません。

  * 設定エラー。ClickHouse の設定ファイルに誤ったホスト名が含まれています。

設定可能な値:

* 1 — スキップが有効です。

  分片が利用できない場合、ClickHouse は一部のデータに基づく結果を返し、ノードの可用性の問題は報告しません。

* 0 — スキップが無効です。

  分片が利用できない場合、ClickHouse は例外をスローします。

<div id="sleep_after_receiving_query_ms">
  ## sleep\_after\_receiving\_query\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="0" />

TCPHandler がクエリを受信した後にスリープする時間

<div id="sleep_in_send_data_ms">
  ## sleep\_in\_send\_data\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="0" />

TCPHandler でデータ送信時に待機する時間

<div id="sleep_in_send_tables_status_ms">
  ## sleep\_in\_send\_tables\_status\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="0" />

TCPHandler でテーブルのステータス応答を送信する際の待機時間

<div id="sort_overflow_mode">
  ## sort\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

ソート前に受信した行数がいずれかの制限を超えた場合の動作を設定します。

設定可能な値:

* `throw`: 例外を発生させます。
* `break`: クエリの実行を停止し、部分的な結果を返します。

<div id="split_intersecting_parts_ranges_into_layers_final">
  ## split\_intersecting\_parts\_ranges\_into\_layers\_final
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "FINAL 最適化時に、交差するパーツの範囲をレイヤーに分割できるようにします"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "1"},{"label": "FINAL 最適化時に、交差するパーツの範囲をレイヤーに分割できるようにします"}]}]} />

FINAL 最適化時に、交差するパーツの範囲をレイヤーに分割します

<div id="split_parts_ranges_into_intersecting_and_non_intersecting_final">
  ## split\_parts\_ranges\_into\_intersecting\_and\_non\_intersecting\_final
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "FINAL 最適化時に、パーツの範囲を交差するものと交差しないものに分割することを許可します"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "1"},{"label": "FINAL 最適化時に、パーツの範囲を交差するものと交差しないものに分割することを許可します"}]}]} />

FINAL 最適化時に、パーツの範囲を交差するものと交差しないものに分割します

<div id="splitby_max_substrings_includes_remaining_string">
  ## splitby\_max\_substrings\_includes\_remaining\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

引数 `max_substrings` > 0 を指定した [splitBy\*()](/ja/reference/functions/regular-functions/splitting-merging-functions) 関数が、結果配列の最後の要素に残りの文字列を含めるかどうかを制御します。

設定可能な値:

* `0` - 残りの文字列は結果配列の最後の要素に含まれません。
* `1` - 残りの文字列は結果配列の最後の要素に含まれます。これは Spark の [`split()`](https://spark.apache.org/docs/3.1.2/api/python/reference/api/pyspark.sql.functions.split.html) 関数および Python の ['string.split()'](https://docs.python.org/3/library/stdtypes.html#str.split) メソッドと同じ動作です。

<div id="stop_refreshable_materialized_views_on_startup">
  ## stop\_refreshable\_materialized\_views\_on\_startup
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

サーバーの起動時に、SYSTEM STOP VIEWS を使用した場合と同様に、リフレッシュ可能なマテリアライズドビューがスケジュールされないようにします。これらはその後、`SYSTEM START VIEWS` または `SYSTEM START VIEW <name>` で手動で開始できます。新しく作成されたビューにも適用されます。リフレッシュ可能でない materialized view には影響しません。

<div id="storage_file_read_method">
  ## storage\_file\_read\_method
</div>

<SettingsInfoBlock type="LocalFSReadMethod" default_value="pread" />

ストレージファイルからデータを読み取る方法です。指定できる値は `read`、`pread`、`mmap` のいずれかです。`mmap` メソッドは clickhouse-server には適用されません (clickhouse-local 向けです) 。

<div id="storage_system_stack_trace_pipe_read_timeout_ms">
  ## storage\_system\_stack\_trace\_pipe\_read\_timeout\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="100" />

`system.stack_trace` テーブルをクエリする際に、スレッドから情報を受け取るためにパイプから読み取る最大時間です。この設定はテスト目的で使用されるもので、ユーザーが変更することは想定されていません。

<div id="stream_flush_interval_ms">
  ## stream\_flush\_interval\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="7500" />

ストリーミングを行うテーブルで、タイムアウトが発生した場合、またはスレッドが [max\_insert\_block\_size](#max_insert_block_size) 行を生成した場合に機能します。

デフォルト値は 7500 です。

値が小さいほど、データはより頻繁にテーブルへフラッシュされます。値を小さくしすぎると、パフォーマンスが低下します。

<div id="stream_like_engine_allow_direct_select">
  ## stream\_like\_engine\_allow\_direct\_select
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.12"},{"label": "0"},{"label": "デフォルトで Kafka/RabbitMQ/FileLog への直接 SELECT を許可しない"}]}]} />

Kafka、RabbitMQ、FileLog、Redis Streams、S3Queue、AzureQueue、NATS エンジンに対する直接 SELECT クエリを許可します。アタッチされた materialized view がある場合は、この設定を有効にしていても SELECT クエリは許可されません。
アタッチされた materialized view がない場合、この設定を有効にするとデータを読み取れるようになります。通常、読み取ったデータはキューから削除されるため、注意してください。読み取ったデータが削除されないようにするには、関連するエンジン設定を適切に構成する必要があります。

<div id="stream_like_engine_insert_queue">
  ## stream\_like\_engine\_insert\_queue
</div>

stream 系の engine が複数の queue から読み取る場合、書き込み時には insert 先の queue を 1 つ選択する必要があります。Redis Streams と NATS で使用されます。

<div id="stream_poll_timeout_ms">
  ## stream\_poll\_timeout\_ms
</div>

<SettingsInfoBlock type="ミリ秒" default_value="500" />

ストリーミングストレージから/へのデータのポーリング時のタイムアウト。

<div id="system_events_show_zero_values">
  ## system\_events\_show\_zero\_values
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

[`system.events`](/ja/reference/system-tables/events) から、値が 0 のイベントも選択できるようにします。

一部の監視システムでは、メトリクスの値が 0 の場合でも、各チェックポイントでそれらにすべてのメトリクス値を渡す必要があります。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

**例**

クエリ

```sql theme={null}
SELECT * FROM system.events WHERE event='QueryMemoryLimitExceeded';
```

結果

```text theme={null}
Ok.
```

クエリ

```sql theme={null}
SET system_events_show_zero_values = 1;
SELECT * FROM system.events WHERE event='QueryMemoryLimitExceeded';
```

結果

```text theme={null}
┌─event────────────────────┬─value─┬─description───────────────────────────────────────────┐
│ QueryMemoryLimitExceeded │     0 │ クエリのメモリ制限を超えた回数。 │
└──────────────────────────┴───────┴───────────────────────────────────────────────────────┘
```

<div id="system_metric_log_show_zero_values_in_histograms">
  ## system\_metric\_log\_show\_zero\_values\_in\_histograms
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "system.metric_log のネストされた `histograms` カラムに、値がゼロのヒストグラムデータを書き込むかどうかを制御する新しい設定。"}]}]} />

値がゼロのヒストグラムデータを `system.metric_log` のネストされた `histograms` カラムに書き込むかどうかを制御します。

デフォルトでは、観測の合計 `count` がゼロのヒストグラムはスキップされ、出力される各ヒストグラム内でも、観測のない bucket エントリは `histogram` map から省略されます。これを有効にすると、count に関係なくすべてのヒストグラムとすべての bucket が書き込まれます。これは、各チェックポイントですべての Metric が必ず現れる必要がある監視システムで役立ちます。

設定可能な値:

* 0 — 無効。`count = 0` のヒストグラムは出力されません。出力されるヒストグラムには、少なくとも 1 回観測された bucket のみが含まれます。
* 1 — 有効。すべてのヒストグラムが書き込まれ、すべての bucket 境界が `histogram` に現れます。

<div id="table_engine_read_through_distributed_cache">
  ## table\_engine\_read\_through\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "新しい設定"}]}]} />

ClickHouse Cloud でのみ有効です。テーブルエンジン / テーブル関数 (s3、azure など) 経由で、分散キャッシュからの読み取りを許可します

<div id="table_function_remote_max_addresses">
  ## table\_function\_remote\_max\_addresses
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

[remote](/ja/reference/functions/table-functions/remote) 関数で、パターンから生成されるアドレスの最大数を設定します。

設定可能な値:

* 正の整数。

<div id="tcp_keep_alive_timeout">
  ## tcp\_keep\_alive\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="290" />

TCP が keepalive プローブの送信を開始するまでに、接続がアイドル状態のままでいる時間 (秒)

<div id="temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds">
  ## temporary\_data\_in\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds
</div>

<SettingsInfoBlock type="UInt64" default_value="600000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "600000"},{"label": "ファイルシステムキャッシュ内の一時データの領域予約時にキャッシュをロックするまでの待機時間"}]}]} />

ファイルシステムキャッシュ内の一時データの領域予約時にキャッシュをロックするまでの待機時間

<div id="temporary_files_buffer_size">
  ## temporary\_files\_buffer\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1048576" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1048576"},{"label": "新しい設定"}]}]} />

一時ファイルの書き込み用バッファのサイズです。バッファサイズが大きいほどシステムコールは少なくなりますが、メモリ消費量は増えます。

<div id="temporary_files_codec">
  ## temporary\_files\_codec
</div>

<SettingsInfoBlock type="String" default_value="LZ4" />

ディスク上でのソートおよび結合処理で使用される一時ファイルの圧縮コーデックを設定します。

設定可能な値:

* LZ4 — [LZ4](https://en.wikipedia.org/wiki/LZ4_\(compression_algorithm\)) 圧縮が適用されます。
* NONE — 圧縮は適用されません。

<div id="text_index_hint_max_selectivity">
  ## text\_index\_hint\_max\_selectivity
</div>

<SettingsInfoBlock type="Float" default_value="0.2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0.2"},{"label": "新しい設定"}]}]} />

転置テキスト索引から構築されたヒントを使用するための、フィルターの最大選択率。

<div id="text_index_like_max_postings_to_read">
  ## text\_index\_like\_max\_postings\_to\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "50"},{"label": "新しい設定"}]}]} />

辞書スキャンによるテキスト索引の LIKE 評価が有効な場合に読み取る、大きな posting の最大数です。

`use_text_index_like_evaluation_by_dictionary_scan` を有効にする必要があります。

<div id="text_index_like_min_pattern_length">
  ## text\_index\_like\_min\_pattern\_length
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "4"},{"label": "新しい設定"}]}]} />

辞書スキャンによるテキスト索引の LIKE 評価を使用するために必要な、LIKE/ILIKE パターン内の英数字検索語の最小長。
このしきい値より短いパターンは、一致する辞書トークンが多くなりすぎるため、コストの高いスキャンを避ける目的でスキップされます。

`use_text_index_like_evaluation_by_dictionary_scan` を有効にする必要があります。

<div id="throw_if_no_data_to_insert">
  ## throw\_if\_no\_data\_to\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

空の INSERT を許可または禁止します。デフォルトで有効になっており、空の INSERT ではエラーになります。[`clickhouse-client`](/ja/concepts/features/interfaces/cli) を使用する INSERT、または [gRPC インターフェイス](/ja/concepts/features/interfaces/grpc) を使用する INSERT にのみ適用されます。

<div id="throw_on_error_from_cache_on_write_operations">
  ## throw\_on\_error\_from\_cache\_on\_write\_operations
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

書き込み操作 (INSERT、merges) のキャッシュ時に、cache で発生したエラーを無視します

<div id="throw_on_max_partitions_per_insert_block">
  ## throw\_on\_max\_partitions\_per\_insert\_block
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

`max_partitions_per_insert_block` に達したときの動作を制御します。

設定可能な値:

* `true`  - 挿入ブロックが `max_partitions_per_insert_block` に達すると、例外をスローします。
* `false` - `max_partitions_per_insert_block` に達すると、警告をログに記録します。

<Tip>
  [`max_partitions_per_insert_block`](/ja/reference/settings/session-settings#max_partitions_per_insert_block) を変更する際に、ユーザーへの影響を把握するのに役立ちます。
</Tip>

<div id="throw_on_unsupported_query_inside_transaction">
  ## throw\_on\_unsupported\_query\_inside\_transaction
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

トランザクション内で未対応のクエリが使用された場合に例外をスローします

<div id="timeout_before_checking_execution_speed">
  ## timeout\_before\_checking\_execution\_speed
</div>

<SettingsInfoBlock type="Seconds" default_value="10" />

指定した秒数が経過した後、実行速度が遅すぎないこと (`min_execution_speed`を下回らないこと) を確認します。

<div id="timeout_overflow_mode">
  ## timeout\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

クエリの実行時間が `max_execution_time` を超えた場合、または
推定実行時間が `max_estimated_execution_time` を超えた場合の動作を設定します。

設定可能な値:

* `throw`: 例外を発生させます (デフォルト) 。
* `break`: クエリの実行を停止し、データが尽きたかのように
  部分的な結果を返します。

<div id="timeout_overflow_mode_leaf">
  ## timeout\_overflow\_mode\_leaf
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

リーフノードで実行されるクエリの実行時間が `max_execution_time_leaf` を超えた場合の動作を設定します。

設定可能な値:

* `throw`: 例外をスローします (デフォルト) 。
* `break`: クエリの実行を停止し、ソースデータが尽きた場合と同様に、部分的な結果を返します。

<div id="totals_auto_threshold">
  ## totals\_auto\_threshold
</div>

<SettingsInfoBlock type="Float" default_value="0.5" />

`totals_mode = 'auto'` で使用する閾値です。
「WITH TOTALS 修飾子」のセクションを参照してください。

<div id="totals_mode">
  ## totals\_mode
</div>

<SettingsInfoBlock type="TotalsMode" default_value="after_having_exclusive" />

HAVING が指定されている場合、および max\_rows\_to\_group\_by と group\_by\_overflow\_mode = 'any' が設定されている場合に、TOTALS をどのように計算するかを指定します。
「WITH TOTALS 修飾子」セクションを参照してください。

<div id="trace_profile_events">
  ## trace\_profile\_events
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

profile events が更新されるたびに、profile event の名前と増分の値に加えて stacktraces を収集し、[trace\_log](/ja/reference/system-tables/trace_log) に送信するかどうかを設定します。

設定可能な値:

* 1 — profile events のトレーシングを有効にします。
* 0 — profile events のトレーシングを無効にします。

<div id="trace_profile_events_list">
  ## trace\_profile\_events\_list
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": ""},{"label": "新しい設定"}]}]} />

設定 `trace_profile_events` が有効な場合、トレースするイベントを、カンマ区切りで指定した名前のリストに限定します。
`trace_profile_events_list` が空文字列 (デフォルト) の場合は、すべての profile events をトレースします。

例の値: 'DiskS3ReadMicroseconds,DiskS3ReadRequestsCount,SelectQueryTimeMicroseconds,ReadBufferFromS3Bytes'

この設定を使用すると、多数のクエリに対するデータをより正確に収集できます。これを使用しないと、大量のイベントによって内部システムログキューがオーバーフローし、一部のイベントが破棄される可能性があるためです。

<div id="transfer_overflow_mode">
  ## transfer\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowMode" default_value="throw" />

データ量がいずれかの制限を超えた場合の動作を設定します。

設定可能な値:

* `throw`: 例外をスローします (既定値) 。
* `break`: クエリの実行を停止し、ソースデータが尽きた場合と同じように、
  部分的な結果を返します。

<div id="transform_null_in">
  ## transform\_null\_in
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

[IN](/ja/reference/statements/in) 演算子において、[NULL](/ja/reference/syntax#null) 値同士の等価性を有効にします。

デフォルトでは、`NULL` は未定義の値を意味するため、`NULL` 値は比較できません。したがって、`expr = NULL` という比較は常に `false` を返す必要があります。この設定を有効にすると、`IN` 演算子では `NULL = NULL` が `true` を返します。

設定可能な値:

* 0 — `IN` 演算子における `NULL` 値の比較は `false` を返します。
* 1 — `IN` 演算子における `NULL` 値の比較は `true` を返します。

**例**

`null_in` テーブルについて考えます:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
│    3 │     3 │
└──────┴───────┘
```

クエリ:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;
```

結果:

```text theme={null}
┌──idx─┬────i─┐
│    1 │    1 │
└──────┴──────┘
```

クエリ:

```sql theme={null}
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;
```

結果:

```text theme={null}
┌──idx─┬─────i─┐
│    1 │     1 │
│    2 │  NULL │
└──────┴───────┘
```

**関連項目**

* [IN演算子におけるNULLの処理](/ja/reference/statements/in#null-processing)

<div id="traverse_shadow_remote_data_paths">
  ## traverse\_shadow\_remote\_data\_paths
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "system.remote_data_paths のクエリ時に、実際のテーブルデータに加えて凍結データ（shadow ディレクトリ）も走査します。"}]}]} />

system.remote\_data\_paths のクエリ時に、実際のテーブルデータに加えて凍結データ (shadow ディレクトリ) も走査します

<div id="union_default_mode">
  ## union\_default\_mode
</div>

`SELECT` クエリの結果を結合するモードを設定します。この設定は、`UNION ALL` または `UNION DISTINCT` を明示的に指定せずに [UNION](/ja/reference/statements/select/union) を使用した場合にのみ適用されます。

設定可能な値:

* `'DISTINCT'` — ClickHouse は、重複する行を削除してクエリを結合した結果を出力します。
* `'ALL'` — ClickHouse は、重複する行を含む、クエリ結合結果のすべての行を出力します。
* `''` — `UNION` とともに使用すると、ClickHouse は例外を生成します。

例については [UNION](/ja/reference/statements/select/union) を参照してください。

<div id="unknown_packet_in_send_data">
  ## unknown\_packet\_in\_send\_data
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

N 番目のデータパケットで、データの代わりに不明なパケットを送信します

<div id="update_parallel_mode">
  ## update\_parallel\_mode
</div>

<SettingsInfoBlock type="UpdateParallelMode" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "新しい設定"}]}]} />

同時実行される更新クエリの動作を決定します。

設定可能な値:

* `sync` - すべての `UPDATE` クエリを順番に実行します。
* `auto` - あるクエリで更新されるカラムと別のクエリの式で使用されるカラムの間に依存関係がある `UPDATE` クエリのみを、順番に実行します。
* `async` - `UPDATE` クエリを同期しません。

<div id="update_sequential_consistency">
  ## update\_sequential\_consistency
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "新しい設定"}]}]} />

true の場合、update の実行前にパーツセットが最新バージョンに更新されます。

<div id="url_base">
  ## url\_base
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": ""},{"label": "url table function および URL table engine で、相対 URL の解決に使用する base URL を指定する新しい設定。"}]}]} />

[url](/ja/reference/functions/table-functions/url) table function および [URL](/ja/reference/engines/table-engines/special/url) table engine で、相対 URL の解決に使用される base URL です。

設定すると、相対 URL は次のように解決されます。

* パス相対 URL (例: `data.csv`) : RFC 3986 に従って base URL の path と結合されます。base path 内の最後の `/` より後ろはすべて相対 URL で置き換えられるため、末尾のスラッシュの有無が重要です。つまり、`https://example.com/dir/` + `data.csv` = `https://example.com/dir/data.csv` ですが、`https://example.com/dir` + `data.csv` = `https://example.com/data.csv` になります。base に path がない場合 (例: `https://example.com`) は、`/` が挿入されて `https://example.com/data.csv` になります。相対 URL 内のドットセグメント (`./` および `../`) は正規化されます: `https://example.com/dir/` + `../a.csv` = `https://example.com/a.csv`。
* ホスト相対 URL (例: `/test/data.csv`) : base URL の scheme と host を基準に解決されます。
* scheme 相対 URL (例: `//other.com/test/data.csv`) : base URL の scheme を使って解決されます。
* クエリのみの参照 (例: `?x=1`) : base URL の path に追加されます (既存の query/fragment は置き換えられます) 。
* フラグメントのみの参照 (例: `#frag`) : 既存の query string は保持したまま base URL に追加されます (既存の fragment は置き換えられます) 。
* 空の参照: fragment を除いた base URL を返します。

たとえば、`url_base` が `https://example.com/def/` の場合:

* `data.csv` は `https://example.com/def/data.csv` に解決されます
* `/test/data.csv` は `https://example.com/test/data.csv` に解決されます
* `//other.com/test/data.csv` は `https://other.com/test/data.csv` に解決されます

<div id="use_async_executor_for_materialized_views">
  ## use\_async\_executor\_for\_materialized\_views
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "新しい設定"}]}]} />

materialized view のクエリ実行に非同期方式を使用し、必要に応じてマルチスレッドでも実行します。これにより、INSERT 中のビュー処理を高速化できる可能性がありますが、その分メモリ消費量も増えます。

<div id="use_cache_for_count_from_files">
  ## use\_cache\_for\_count\_from\_files
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

テーブル関数 `file`/`s3`/`url`/`hdfs`/`azureBlobStorage` で、ファイルから count を行う際の行数のキャッシュを有効にします。

デフォルトで有効です。

<div id="use_client_time_zone">
  ## use\_client\_time\_zone
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

サーバーのタイムゾーンではなく、DateTime文字列の値の解釈にクライアントのタイムゾーンを使用します。

<div id="use_compact_format_in_distributed_parts_names">
  ## use\_compact\_format\_in\_distributed\_parts\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.1"},{"label": "1"},{"label": "デフォルトで、分散テーブルへの非同期 INSERT に compact フォーマットを使用する"}]}]} />

`Distributed` エンジンのテーブルへのバックグラウンド (`distributed_foreground_insert`) INSERT で、ブロックの保存に compact フォーマットを使用します。

設定可能な値:

* 0 — `user[:password]@host:port#default_database` のディレクトリフォーマットを使用します。
* 1 — `[shard{shard_index}[_replica{replica_index}]]` のディレクトリフォーマットを使用します。

<Note>
  - `use_compact_format_in_distributed_parts_names=0` の場合、クラスター定義の変更はバックグラウンド INSERT に適用されません。
  - `use_compact_format_in_distributed_parts_names=1` の場合、クラスター定義内のノードの順序を変更すると `shard_index`/`replica_index` も変わるため、注意してください。
</Note>

<div id="use_concurrency_control">
  ## use\_concurrency\_control
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "デフォルトで同時実行制御を有効化"}]}]} />

サーバーの同時実行制御 (グローバルなサーバー設定 `concurrent_threads_soft_limit_num` および `concurrent_threads_soft_limit_ratio_to_cores` を参照) に従います。無効にすると、サーバーが過負荷の状態でも、より多くのスレッドを使用できるようになります (通常の用途では推奨されず、主にテストで必要です) 。

Cloud でのデフォルト値: `0`.

<div id="use_hash_table_stats_for_join_reordering">
  ## use\_hash\_table\_stats\_for\_join\_reordering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "新しい設定。従来は 'collect_hash_table_stats_during_joins' 設定を反映していました。"}]}]} />

join の並べ替え時に、収集したハッシュテーブル統計をカーディナリティ推定に使用できるようにします

<div id="use_hedged_requests">
  ## use\_hedged\_requests
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.9"},{"label": "1"},{"label": "デフォルトで Hedged Requests 機能を有効にする"}]}]} />

リモートクエリに対するヘッジドリクエストのロジックを有効にします。これにより、1 つのクエリに対して異なるレプリカへの複数の接続を確立できます。
既存のレプリカへの接続が `hedged_connection_timeout` 以内に確立されなかった場合、
または `receive_data_timeout` 以内にデータを受信できなかった場合は、新しい接続が有効になります。クエリは、空でない Progress パケット (`allow_changing_replica_until_first_data_packet` の場合は Data パケット) を最初に送信した接続を使用し、
それ以外の接続はキャンセルされます。`max_parallel_replicas > 1` のクエリもサポートされます。

デフォルトで有効です。

Cloud でのデフォルト値: `0`。

<div id="use_hive_partitioning">
  ## use\_hive\_partitioning
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "この設定はデフォルトで有効化されました。"}]}, {"id": "row-2","items": [{"label": "24.8"},{"label": "0"},{"label": "File、URL、S3、AzureBlobStorage、HDFS エンジンで Hive スタイルのパーティション化を使用できます。"}]}]} />

有効にすると、ClickHouse はファイル系のテーブルエンジン [File](/ja/reference/functions/table-functions/file#hive-style-partitioning)/[S3](/ja/reference/functions/table-functions/s3#hive-style-partitioning)/[URL](/ja/reference/functions/table-functions/url#hive-style-partitioning)/[HDFS](/ja/reference/functions/table-functions/hdfs#hive-style-partitioning)/[AzureBlobStorage](/ja/reference/functions/table-functions/azureBlobStorage#hive-style-partitioning) のパス (`/name=value/`) 内にある Hive スタイルのパーティション化を検出し、クエリでパーティションカラムを仮想カラムとして使用できるようにします。これらの仮想カラムの名前はパーティション化されたパス内の名前と同じですが、先頭に `_` が付きます。

<div id="use_iceberg_metadata_files_cache">
  ## use\_iceberg\_metadata\_files\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "新しい設定"}]}]} />

有効にすると、Iceberg テーブル関数および Iceberg ストレージで Iceberg メタデータファイルのキャッシュを利用できます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="use_iceberg_partition_pruning">
  ## use\_iceberg\_partition\_pruning
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "デフォルトでIcebergのパーティションプルーニングを有効にします。"}]}, {"id": "row-2","items": [{"label": "25.1"},{"label": "0"},{"label": "Icebergのパーティションプルーニング向けの新しい設定。"}]}]} />

Icebergテーブルに対してIcebergのパーティションプルーニングを使用します

<div id="use_index_for_in_with_subqueries">
  ## use\_index\_for\_in\_with\_subqueries
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

IN 演算子の右辺にサブクエリまたはテーブル式がある場合、索引の使用を試みます。

<div id="use_index_for_in_with_subqueries_max_values">
  ## use\_index\_for\_in\_with\_subqueries\_max\_values
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

フィルタリングでテーブルの索引を使用する場合の、`IN` 演算子の右辺にある Set の最大サイズです。大規模なクエリで追加のデータ構造を準備することによる性能低下やメモリ使用量の増加を防ぐことができます。0 は制限なしを意味します。

<div id="use_join_disjunctions_push_down">
  ## use\_join\_disjunctions\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "この最適化を有効化しました。"}]}, {"id": "row-2","items": [{"label": "25.10"},{"label": "0"},{"label": "新しい設定"}]}]} />

JOIN 条件の OR で結合された部分を、対応する入力側にプッシュダウン (「部分的なプッシュダウン」) するかどうかを有効にします。
これにより、ストレージエンジンがより早い段階でフィルタリングできるようになり、読み込むデータ量を減らせる可能性があります。
この最適化は元の意味を変えず、各最上位の OR 分岐が対象側に対して少なくとも 1 つの決定論的な
条件式を持つ場合にのみ適用されます。

<div id="use_legacy_to_time">
  ## use\_legacy\_to\_time
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "新しい設定。toTime の従来の関数ロジックを使用できるようにします。これは toTimeWithFixedDate と同様に動作します。"}]}]} />

有効にすると、従来の toTime 関数を使用できます。この関数は、時刻を保持したまま、日時を特定の固定日付に変換します。
無効な場合は、新しい toTime 関数が使用され、さまざまな型のデータを Time 型に変換します。
従来の古い関数は、toTimeWithFixedDate として常に利用できます。

<div id="use_page_cache_for_disks_without_file_cache">
  ## use\_page\_cache\_for\_disks\_without\_file\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "ユーザー空間のページキャッシュを追加"}]}]} />

ファイルシステムキャッシュが有効でないリモートディスクでは、ユーザー空間のページキャッシュを使用します。

<div id="use_page_cache_for_local_disks">
  ## use\_page\_cache\_for\_local\_disks
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "ローカルディスクでユーザー空間ページキャッシュを使用するための新しい設定"}]}]} />

ローカルディスクから読み取る際に、ユーザー空間ページキャッシュを使用します。テスト用途の設定であり、実際の運用でパフォーマンスが向上する可能性は低いです。`local_filesystem_read_method = 'pread'` または `'read'` が必要です。OS page cache は無効になりません。これを無効にするには `min_bytes_to_use_direct_io` を使用できます。影響するのは通常のテーブルのみで、`file()` テーブル関数や `File()` テーブルエンジンには影響しません。

<div id="use_page_cache_for_object_storage">
  ## use\_page\_cache\_for\_object\_storage
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "オブジェクトストレージのテーブル関数でユーザー空間ページキャッシュを使用するための新しい設定"}]}]} />

オブジェクトストレージのテーブル関数 (s3、azure、hdfs) およびテーブルエンジン (S3、Azure、HDFS) から読み込む際に、ユーザー空間ページキャッシュを使用します。

<div id="use_page_cache_with_distributed_cache">
  ## use\_page\_cache\_with\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "0"},{"label": "新しい設定"}]}]} />

分散キャッシュを使用する場合は、ユーザー空間ページキャッシュを使用します。

<div id="use_paimon_partition_pruning">
  ## use\_paimon\_partition\_pruning
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "0"},{"label": "新しい設定"}]}]} />

Paimon table function で Paimon のパーティションプルーニングを使用します

<div id="use_parquet_metadata_cache">
  ## use\_parquet\_metadata\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "Parquet file のメタデータキャッシュを有効にします。"}]}]} />

有効にすると、Parquet フォーマットでメタデータキャッシュを利用できます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="use_partition_pruning">
  ## use\_partition\_pruning
</div>

**別名**: `use_partition_key`

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "1"},{"label": "MergeTree がパーティションキーを使用して不要なパーティションを除外するかどうかを制御する新しい設定です。'use_partition_key' はこの設定の別名です。"}]}]} />

MergeTree テーブルのクエリ実行時に、パーティションキーを使用して不要なパーティションを除外します。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_primary_key">
  ## use\_primary\_key
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "MergeTree でグラニュールレベルのプルーニングに主キーを使用するかどうかを制御する新しい設定。"}]}]} />

MergeTree テーブルで、クエリ実行時のグラニュールのプルーニングに主キーを使用します。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_query_cache">
  ## use\_query\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

有効にすると、`SELECT` クエリで [query cache](/ja/concepts/features/performance/caches/query-cache) を利用できます。パラメーター [enable\_reads\_from\_query\_cache](#enable_reads_from_query_cache)
および [enable\_writes\_to\_query\_cache](#enable_writes_to_query_cache) によって、cache の使用方法をより細かく制御できます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="use_query_condition_cache">
  ## use\_query\_condition\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.4"},{"label": "1"},{"label": "新しい最適化"}]}, {"id": "row-2","items": [{"label": "25.3"},{"label": "0"},{"label": "新しい設定"}]}]} />

[クエリ条件キャッシュ](/ja/concepts/features/performance/caches/query-condition-cache)を有効にします。この cache は、`WHERE` 句の条件を満たさないデータパーツ内のグラニュールの範囲を保存し、
後続のクエリでこの情報を一時的な索引として再利用します。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="use_roaring_bitmap_iceberg_positional_deletes">
  ## use\_roaring\_bitmap\_iceberg\_positional\_deletes
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "新しい設定"}]}]} />

Iceberg の positional delete に roaring bitmap を使用します。

<div id="use_skip_indexes">
  ## use\_skip\_indexes
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

クエリの実行時にデータスキッピングインデックスを使用します。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_skip_indexes_for_disjunctions">
  ## use\_skip\_indexes\_for\_disjunctions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "新しい設定"}]}]} />

スキップ索引を使用して、AND と OR が混在する WHERE フィルターを評価します。例: WHERE A = 5 AND (B = 5 OR C = 5)。
無効にした場合でも、WHERE 条件の評価には引き続きスキップ索引が使用されますが、条件には AND で結合された句しか含められません。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_skip_indexes_for_top_k">
  ## use\_skip\_indexes\_for\_top\_k
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "デフォルトで TopK フィルタリングにデータスキッピングインデックスを使用するようにする"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "新しい設定"}]}]} />

TopK フィルタリングでデータスキッピングインデックスを使用するかどうかを有効にします。

有効にすると、`ORDER BY <column> LIMIT n` クエリのカラムに minmax スキップ索引が存在する場合、オプティマイザは minmax 索引を使用して、最終結果に関係のないグラニュールをスキップしようとします。これにより、クエリのレイテンシを低減できます。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_skip_indexes_if_final">
  ## use\_skip\_indexes\_if\_final
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "設定のデフォルト値を変更"}]}]} />

FINAL 修飾子を指定したクエリの実行時に、スキップ索引を使用するかどうかを制御します。

スキップ索引によって最新データを含む行 (granules) が除外される可能性があり、その結果、FINAL 修飾子を指定したクエリで不正確な結果が返されることがあります。この設定を有効にすると、FINAL 修飾子を使用している場合でもスキップ索引が適用され、パフォーマンスが向上する可能性がありますが、その一方で直近の更新を見落とすおそれがあります。この設定は、use\_skip\_indexes\_if\_final\_exact\_mode 設定と合わせて有効にする必要があります (デフォルトでは有効です) 。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_skip_indexes_if_final_exact_mode">
  ## use\_skip\_indexes\_if\_final\_exact\_mode
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "設定のデフォルト値を変更"}]}, {"id": "row-2","items": [{"label": "25.5"},{"label": "0"},{"label": "この設定は、FINAL クエリでスキップ索引を使用した場合でも正しい結果を返せるように導入されました"}]}]} />

FINAL 修飾子付きでクエリを実行するときに、正しい結果を返せるよう、スキップ索引が返したグラニュールを新しいパーツ内で展開するかどうかを制御します。

スキップ索引を使用すると、最新データを含む行 (グラニュール) が除外され、結果が不正確になる可能性があります。この設定を有効にすると、スキップ索引が返した範囲と重なる新しいパーツをスキャンすることで、正しい結果を返せるようになります。アプリケーションで、スキップ索引の参照に基づく近似結果でも問題ない場合にのみ、この設定を無効にしてください。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_skip_indexes_on_data_read">
  ## use\_skip\_indexes\_on\_data\_read
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "テキスト索引が GA になりました"}]}, {"id": "row-2","items": [{"label": "26.1"},{"label": "1"},{"label": "デフォルトで有効"}]}, {"id": "row-3","items": [{"label": "25.9"},{"label": "0"},{"label": "新しい設定"}]}]} />

データ読み取り時にデータスキッピングインデックスを使用するかどうかを制御します。

有効にすると、スキップ索引はクエリ実行の開始前に事前解析されるのではなく、各データグラニュールの読み取り時に動的に評価されます。これにより、クエリ開始時のレイテンシを低減できます。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_statistics">
  ## use\_statistics
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "この最適化はデフォルトで有効です。"}]}]} />

/// 'use\_primary\_key' および 'use\_skip\_indexes' との整合性のため、'allow\_statistics\_optimize' よりこちらが推奨されます
統計を使用してクエリを最適化できるようにします

<div id="use_statistics_cache">
  ## use\_statistics\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "1"},{"label": "statistics cache を有効にする"}]}, {"id": "row-2","items": [{"label": "25.11"},{"label": "0"},{"label": "新しい設定"}]}]} />

クエリで statistics cache を使用すると、各パーツの統計情報を読み込むオーバーヘッドを回避できます

<div id="use_statistics_for_part_pruning">
  ## use\_statistics\_for\_part\_pruning
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "クエリ実行時のパーツ剪枝で統計を使用するための新しい設定。"}]}]} />

クエリ実行時に、統計を使用してパーツを絞り込みます。

有効にすると、SELECT クエリでの剪枝ではカラム STATISTICS (例: MinMax statistics) を使用し、データを読み取る前に一致するデータを含まないパーツを除外します。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_strict_insert_block_limits">
  ## use\_strict\_insert\_block\_limits
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "INSERT 時に最小および最大の挿入境界を厳密に適用するための新しい設定です。min < max の場合は、max の制限が優先されます。"}]}]} />

有効にすると、最小および最大の挿入ブロックサイズ制限の両方が厳密に適用されます。

ブロックは、次の場合に出力されます。

* 最小しきい値 (AND) : min\_insert\_block\_size\_rows と min\_insert\_block\_size\_bytes の両方に達した場合。
* 最大しきい値 (OR) : max\_insert\_block\_size\_rows または max\_insert\_block\_size\_bytes のいずれかに達した場合。

無効な場合、ブロックは次の場合に出力されます。

* 最小しきい値 (OR) : min\_insert\_block\_size\_rows または min\_insert\_block\_size\_bytes のいずれかに達した場合。

**注**: max の設定が min の設定より小さい場合は、max の制限が優先されるため、最小しきい値に達する前にブロックが出力されます。

**注**: この設定は非同期 INSERT では自動的に無効になります。これは、非同期 INSERT ではエントリごとの重複排除トークンが付与され、厳密な制限を適用するために必要なブロックの分割と両立しないためです。

デフォルトでは無効です。

<div id="use_structure_from_insertion_table_in_table_functions">
  ## use\_structure\_from\_insertion\_table\_in\_table\_functions
</div>

<SettingsInfoBlock type="UInt64" default_value="2" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.11"},{"label": "2"},{"label": "テーブル関数で挿入先テーブルの構造を使用する機能を改善"}]}]} />

データからのスキーマ推論ではなく、挿入先テーブルの構造を使用します。設定可能な値: 0 - 無効、1 - 有効、2 - 自動

<div id="use_text_index_header_cache">
  ## use\_text\_index\_header\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "新しい設定"}]}]} />

デシリアライズされたテキスト索引ヘッダーのcacheを使用するかどうかを指定します。
テキスト索引ヘッダーキャッシュを使用すると、多数のテキスト索引クエリを処理する際のレイテンシを大幅に低減し、スループットを向上させることができます。

<div id="use_text_index_like_evaluation_by_dictionary_scan">
  ## use\_text\_index\_like\_evaluation\_by\_dictionary\_scan
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "新しい設定"}]}]} />

転置テキスト索引のDictionaryをスキャンして、LIKE/ILIKEクエリの評価を有効にします。

<div id="use_text_index_postings_cache">
  ## use\_text\_index\_postings\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "0"},{"label": "新しい設定"}]}]} />

デシリアライズ済みのテキスト索引 posting list の cache を使用するかどうか。
テキスト索引 posting list の cache を使用すると、多数のテキスト索引クエリを実行する際のレイテンシを大幅に低減し、スループットを向上させることができます。

<div id="use_text_index_tokens_cache">
  ## use\_text\_index\_tokens\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "新しい設定"}]}]} />

デシリアライズされたテキスト索引トークン情報のキャッシュを使用するかどうか。
テキスト索引トークンキャッシュを使用すると、大量のテキスト索引クエリを処理する際のレイテンシを大幅に低減し、スループットを向上させることができます。

<div id="use_top_k_dynamic_filtering">
  ## use\_top\_k\_dynamic\_filtering
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "TopKクエリの動的フィルタリング最適化をデフォルトで有効にする"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "新しい設定"}]}]} />

`ORDER BY <column> LIMIT n` クエリの実行時に、動的フィルタリング最適化を有効にします。

有効にすると、クエリ実行エンジンは、結果セットの最終的な `top N` 行に含まれないグラニュールや行をスキップしようとします。この最適化は動的な性質を持つため、レイテンシの改善度はデータ分布や、クエリ内の他の述語条件の有無に依存します。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_top_k_dynamic_filtering_for_variable_length_types">
  ## use\_top\_k\_dynamic\_filtering\_for\_variable\_length\_types
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "デフォルトでは、可変長のソートカラム（例: `String`）に対して `use_top_k_dynamic_filtering` を無効にします。以前の動作ではこの最適化は無条件に適用されており、その挙動は `compatibility` で維持されます。"}]}]} />

ソートカラムが可変長のデータ型 (例: `String`、`Array`、`Map`、可変長要素を含む `Tuple`) である場合に、`use_top_k_dynamic_filtering` を適用できるようにします。

このような型では、動的フィルターによる行ごとのしきい値比較のコストが、カラムの辞書順最小値が支配的で (たとえば空文字列が大半を占める場合) 、スキップできるグラニュールが少ないときには、得られる削減効果を上回ることがあります。この場合、動的フィルターはクエリのレイテンシを改善するどころか、かえって悪化させます。

この設定が `0` の場合、動的フィルタリングは、値がメモリ上で固定の最大サイズを持つカラム (数値、`Date`、`DateTime`、`FixedString`、`Enum`、それらの型の `Nullable`、それらの型の `Tuple`) に制限されます。`1` に設定すると、動的フィルタリングは可変長型にも適用されます。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="use_uncompressed_cache">
  ## use\_uncompressed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

非圧縮ブロックのキャッシュを使用するかどうかを指定します。指定できる値は 0 または 1 です。デフォルトは 0 (無効) です。
非圧縮キャッシュ (MergeTree family のテーブルでのみ有効) を使用すると、多数の短いクエリを実行する際のレイテンシを大幅に低減し、スループットを向上させることができます。短いリクエストを高頻度で送信するユーザーには、この設定を有効にしてください。また、[uncompressed\_cache\_size](/ja/reference/settings/server-settings/settings#uncompressed_cache_size) 設定パラメータ (設定ファイルでのみ設定可能) — 非圧縮キャッシュブロックのサイズ — にも注意してください。デフォルト値は 8 GiB です。非圧縮キャッシュは必要に応じて補完され、あまり使われないデータは自動的に削除されます。

ある程度大きなデータ量 (100 万行以上) を読み取るクエリでは、本当に小さなクエリ向けの領域を確保するため、非圧縮キャッシュは自動的に無効になります。つまり、`use_uncompressed_cache` は常に 1 に設定しておけます。

<div id="use_variant_as_common_type">
  ## use\_variant\_as\_common\_type
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "使い勝手が向上しました。"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "0"},{"label": "引数の型に共通型がない場合でも、if/multiIf で Variant を使用できるようにします"}]}]} />

引数の型に共通型がない場合に、[if](/ja/reference/functions/regular-functions/conditional-functions#if)/[multiIf](/ja/reference/functions/regular-functions/conditional-functions#multiIf)/[array](/ja/reference/functions/regular-functions/array-functions)/[map](/ja/reference/functions/regular-functions/tuple-map-functions) 関数の結果型として `Variant` 型を使用できるようにします。

例:

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(if(number % 2, number, range(number))) as variant_type FROM numbers(1);
SELECT if(number % 2, number, range(number)) as variant FROM numbers(5);
```

```text theme={null}
┌─variant_type───────────────────┐
│ Variant(Array(UInt64), UInt64) │
└────────────────────────────────┘
┌─variant───┐
│ []        │
│ 1         │
│ [0,1]     │
│ 3         │
│ [0,1,2,3] │
└───────────┘
```

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(multiIf((number % 4) = 0, 42, (number % 4) = 1, [1, 2, 3], (number % 4) = 2, 'Hello, World!', NULL)) AS variant_type FROM numbers(1);
SELECT multiIf((number % 4) = 0, 42, (number % 4) = 1, [1, 2, 3], (number % 4) = 2, 'Hello, World!', NULL) AS variant FROM numbers(4);
```

```text theme={null}
─variant_type─────────────────────────┐
│ Variant(Array(UInt8), String, UInt8) │
└──────────────────────────────────────┘

┌─variant───────┐
│ 42            │
│ [1,2,3]       │
│ Hello, World! │
│ ᴺᵁᴸᴸ          │
└───────────────┘
```

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(array(range(number), number, 'str_' || toString(number))) as array_of_variants_type from numbers(1);
SELECT array(range(number), number, 'str_' || toString(number)) as array_of_variants FROM numbers(3);
```

```text theme={null}
┌─array_of_variants_type────────────────────────┐
│ Array(Variant(Array(UInt64), String, UInt64)) │
└───────────────────────────────────────────────┘

┌─array_of_variants─┐
│ [[],0,'str_0']    │
│ [[0],1,'str_1']   │
│ [[0,1],2,'str_2'] │
└───────────────────┘
```

```sql theme={null}
SET use_variant_as_common_type = 1;
SELECT toTypeName(map('a', range(number), 'b', number, 'c', 'str_' || toString(number))) as map_of_variants_type from numbers(1);
SELECT map('a', range(number), 'b', number, 'c', 'str_' || toString(number)) as map_of_variants FROM numbers(3);
```

```text theme={null}
┌─map_of_variants_type────────────────────────────────┐
│ Map(String, Variant(Array(UInt64), String, UInt64)) │
└─────────────────────────────────────────────────────┘

┌─map_of_variants───────────────┐
│ {'a':[],'b':0,'c':'str_0'}    │
│ {'a':[0],'b':1,'c':'str_1'}   │
│ {'a':[0,1],'b':2,'c':'str_2'} │
└───────────────────────────────┘
```

<div id="use_variant_default_implementation_for_comparisons">
  ## use\_variant\_default\_implementation\_for\_comparisons
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1"},{"label": "比較関数で Variant 型のデフォルト実装を有効にする"}]}]} />

比較関数における Variant 型のデフォルト実装を有効または無効にします。

<div id="use_with_fill_by_sorting_prefix">
  ## use\_with\_fill\_by\_sorting\_prefix
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "1"},{"label": "ORDER BY 句で WITH FILL カラムに先行するカラムは、ソートプレフィックスを形成します。ソートプレフィックスの値が異なる行は、それぞれ独立して補完されます"}]}]} />

ORDER BY 句で WITH FILL カラムに先行するカラムは、ソートプレフィックスを形成します。ソートプレフィックスの値が異なる行は、それぞれ独立して補完されます

<div id="validate_enum_literals_in_operators">
  ## validate\_enum\_literals\_in\_operators
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "0"},{"label": "新しい設定"}]}]} />

有効にすると、`IN`、`NOT IN`、`==`、`!=` などの演算子内の enum リテラルを enum 型に対して検証し、そのリテラルが有効な enum 値でない場合は例外を発生させます。

<div id="validate_mutation_query">
  ## validate\_mutation\_query
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "デフォルトで mutation クエリを検証する新しい設定。"}]}]} />

受け付ける前に mutation クエリを検証します。mutation はバックグラウンドで実行されるため、無効なクエリを実行すると mutation が停止したままになり、手動での対応が必要になります。

後方互換性のないバグに遭遇した場合にのみ、この設定を変更してください。

<div id="validate_polygons">
  ## validate\_polygons
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.4"},{"label": "1"},{"label": "デフォルトで、関数 pointInPolygon で無効なポリゴンに対して、誤った結果を返す可能性がある代わりに例外をスローします"}]}]} />

ポリゴンが自己交差または自己接触している場合に、[pointInPolygon](/ja/reference/functions/regular-functions/geo/coordinates#pointinpolygon) 関数で例外をスローするかどうかを有効または無効にします。

設定可能な値:

* 0 — 例外のスローは無効です。`pointInPolygon` は無効なポリゴンを受け入れ、それに対して誤った結果を返す可能性があります。
* 1 — 例外のスローは有効です。

<div id="variant_throw_on_type_mismatch">
  ## variant\_throw\_on\_type\_mismatch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "デフォルトの Variant 実装における型不一致時の動作を制御する新しい設定"}]}]} />

デフォルト実装を使用して [Variant](/ja/reference/data-types/variant) カラムに関数を適用する際に、
実際の型がその関数と互換性のない行に対してどのように動作するかを制御します。

* `true` (デフォルト) — 例外をスローします。
* `false` — 代わりに、それらの行では `NULL` を返します。

<div id="vector_search_filter_strategy">
  ## vector\_search\_filter\_strategy
</div>

<SettingsInfoBlock type="VectorSearchFilterStrategy" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "新しい設定"}]}]} />

ベクトル検索クエリに WHERE 句がある場合、この設定は、まずそれを評価する (pre-filtering) か、先にベクトル類似度索引を参照する (ポストフィルタリング) かを決定します。設定可能な値:

* 'auto' - ポストフィルタリング (正確な動作は今後変更される可能性があります) 。
* 'postfilter' - ベクトル類似度索引を使用して最近傍を特定し、その後でほかのフィルターを適用します
* 'prefilter' - まずほかのフィルターを評価し、その後で総当たり検索を実行して近傍を特定します。

<div id="vector_search_index_fetch_multiplier">
  ## vector\_search\_index\_fetch\_multiplier
</div>

**別名**: `vector_search_postfilter_multiplier`

<SettingsInfoBlock type="Float" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "設定 'vector_search_postfilter_multiplier' の別名"}]}]} />

ベクトル類似度索引から取得する最近傍の数を、この値倍にします。他の述語によるポストフィルタリング時、または設定 `vector_search_with_rescoring = 1` の場合にのみ適用されます。

<div id="vector_search_with_rescoring">
  ## vector\_search\_with\_rescoring
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "新しい設定"}]}]} />

ClickHouse が、ベクトル類似度索引を使用するクエリに対して rescoring を実行するかどうかを指定します。
rescoring を行わない場合、ベクトル類似度索引は最適な一致を含む行を直接返します。
rescoring を行う場合は、行が granule レベルに拡張され、その granule 内のすべての行が再度チェックされます。
ほとんどの場合、rescoring による精度向上はわずかですが、ベクトル検索クエリのパフォーマンスは大きく低下します。
注: rescoring を行わず、かつ並列レプリカが有効な状態で実行されたクエリは、rescoring にフォールバックすることがあります。

<div id="wait_changes_become_visible_after_commit_mode">
  ## wait\_changes\_become\_visible\_after\_commit\_mode
</div>

<SettingsInfoBlock type="TransactionsWaitCSNMode" default_value="wait_unknown" />

コミット済みの変更が最新のスナップショットで実際に見えるようになるまで待機します

<div id="wait_for_async_insert">
  ## wait\_for\_async\_insert
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

true の場合は、非同期挿入の処理が完了するまで待機します

<div id="wait_for_async_insert_timeout">
  ## wait\_for\_async\_insert\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="120" />

非同期挿入の処理完了を待機する際のタイムアウト

<div id="wait_for_window_view_fire_signal_timeout">
  ## wait\_for\_window\_view\_fire\_signal\_timeout
</div>

<SettingsInfoBlock type="Seconds" default_value="10" />

イベント時間処理で window view の fire signal を待機する際のタイムアウト

<div id="webassembly_udf_max_fuel">
  ## webassembly\_udf\_max\_fuel
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "100000"},{"label": "WebAssembly UDF インスタンス実行ごとの CPU 命令数（fuel）を制限する新しい設定。"}]}]} />

WebAssembly UDF インスタンスの実行ごとの fuel の上限です。各 WebAssembly 命令は一定量の fuel を消費します。
制限を設けない場合は 0 に設定します。

<div id="webassembly_udf_max_input_block_size">
  ## webassembly\_udf\_max\_input\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "WebAssembly UDF の入力ブロックサイズを制限するための新しい設定。"}]}]} />

1 つのブロックで WebAssembly UDF に渡される最大行数。0 に設定すると、すべての行が一度に処理されます。

<div id="webassembly_udf_max_instances">
  ## webassembly\_udf\_max\_instances
</div>

<SettingsInfoBlock type="UInt64" default_value="32" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "32"},{"label": "関数ごとに並列実行できる WebAssembly UDF インスタンス数を制限する新しい設定。"}]}]} />

関数ごとに並列実行できる WebAssembly UDF インスタンスの最大数。

<div id="webassembly_udf_max_memory">
  ## webassembly\_udf\_max\_memory
</div>

<SettingsInfoBlock type="UInt64" default_value="134217728" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "134217728"},{"label": "各 WebAssembly UDF インスタンスのメモリを制限する新しい設定。"}]}]} />

各 WebAssembly UDF インスタンスに対する、バイト単位のメモリ制限。

<div id="window_view_clean_interval">
  ## window\_view\_clean\_interval
</div>

<SettingsInfoBlock type="Seconds" default_value="60" />

window view の古くなったデータを解放するための、秒単位のクリーンアップ間隔。

<div id="window_view_heartbeat_interval">
  ## window\_view\_heartbeat\_interval
</div>

<SettingsInfoBlock type="Seconds" default_value="15" />

watchクエリが稼働中であることを示す、秒単位のハートビート間隔です。

<div id="workload">
  ## workload
</div>

<SettingsInfoBlock type="String" default_value="default" />

リソースへのアクセスに使用するワークロード名

<div id="write_full_path_in_iceberg_metadata">
  ## write\_full\_path\_in\_iceberg\_metadata
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "新しい設定"}]}]} />

完全なパス (`s3://` を含む) を Iceberg メタデータファイルに書き込みます。

<div id="write_through_distributed_cache">
  ## write\_through\_distributed\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "ClickHouse Cloud 向けの設定"}]}]} />

ClickHouse Cloud でのみ効果があります。分散キャッシュへの書き込みを許可します (S3 への書き込みも分散キャッシュ経由で行われます)

<div id="write_through_distributed_cache_buffer_size">
  ## write\_through\_distributed\_cache\_buffer\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "新しい Cloud 設定"}]}]} />

ClickHouse Cloud でのみ有効です。ライトスルー分散キャッシュのバッファサイズを設定します。0 の場合は、分散キャッシュがない場合に使用されるバッファサイズが使われます。

<div id="zstd_window_log_max">
  ## zstd\_window\_log\_max
</div>

<SettingsInfoBlock type="Int64" default_value="0" />

ZSTD の最大ウィンドウログを指定できます (MergeTree family では使用されません)
