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

# max_insert_* 세션 설정

> max_insert_* 그룹에 속하는 ClickHouse 세션 설정입니다.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>유형</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>기본값</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          재시작 없이 변경 가능
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

이러한 설정은 [system.settings](/docs/ko/reference/system-tables/settings)에서 확인할 수 있으며, [소스 코드](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)에서 자동 생성됩니다.

<div id="max_insert_block_size">
  ## max\_insert\_block\_size
</div>

**별칭**: `max_insert_block_size_rows`

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

테이블에 삽입할 블록의 최대 크기(행 수 기준)를 지정합니다.

이 설정은 다음 두 가지 상황에서 블록 형성을 제어합니다.

1. 포맷 파싱: 서버가 임의의 인터페이스(HTTP, inline 데이터가 포함된 clickhouse-client, gRPC, PostgreSQL wire 프로토콜)를 통해 행 기반 입력 형식(CSV, TSV, JSONEachRow 등)을 파싱할 때, 다음 조건에서 블록이 생성됩니다.

   * min\_insert\_block\_size\_rows AND min\_insert\_block\_size\_bytes를 모두 만족한 경우, OR
   * max\_insert\_block\_size\_rows OR 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 AND min\_insert\_block\_size\_bytes를 모두 만족
     * 최대 임계값(OR): max\_insert\_block\_size\_rows OR max\_insert\_block\_size\_bytes 중 하나를 만족

   * 비활성화된 경우: min\_insert\_block\_size\_rows OR 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" />

최종 파트 플러시를 지연할 수 있는 최대 스트림 수(컬럼 수)입니다. 기본값은 자동입니다(예: S3처럼 기반 스토리지가 병렬 쓰기를 지원하면 100, 그렇지 않으면 비활성화).

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`](/docs/ko/reference/settings/session-settings/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_min_free_memory_per_thread`와 동일하지만, `max_threads`가 아니라 `max_insert_threads`에 적용됩니다. 기본값이 더 큰 이유는 삽입 파이프라인이 일반적으로 읽기 파이프라인보다 스레드별로 더 큰 버퍼(MergeTree 파트, 압축 블록)를 보유하기 때문입니다.

여유 메모리 양이 `max_insert_threads`에 이 값을 곱한 값보다 적으면, `max_insert_threads`는 이에 맞게 최소 `1`까지 줄어듭니다.

이 제한을 비활성화하려면 `0`으로 설정하십시오.
