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

# merge_tree_* 세션 설정

> merge_tree_* 생성 그룹에 속한 ClickHouse 세션 설정입니다.

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

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

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

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

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

데이터를 검색할 때 ClickHouse는 인덱스 파일의 데이터 마크를 확인합니다. 필요한 키가 특정 범위에 있는 것을 발견하면, ClickHouse는 해당 범위를 `merge_tree_coarse_index_granularity`개의 하위 범위로 나눈 다음 그 안에서 필요한 키를 재귀적으로 검색합니다.

가능한 값:

* 모든 양의 짝수 정수.

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

<CloudOnlyBadge />

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

이 설정은 ClickHouse Cloud에서만 적용됩니다. 병렬 읽기와 프리페치를 지원하는 멀티버퍼 리더를 사용하기 위한 MergeTree 테이블의 compact 파트 stripe 내 그래뉼 수를 지정합니다. remote fs에서 읽을 때 멀티버퍼 리더를 사용하면 읽기 요청 수가 증가합니다. 파트에 포함된 그래뉼 수가 이 임계값보다 적고, 읽는 컬럼 수보다도 적으면 해당 파트는 단일 버퍼로 읽습니다. 이 경우 단일 버퍼 리더가 멀티버퍼 리더보다 읽기 요청을 더 적게 보내기 때문입니다.

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

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

읽기 작업 크기를 결정할 때 prewhere 컬럼의 크기만 사용할지 여부를 설정합니다.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "프라이머리 키 인덱스에 대한 일반 제외 검색의 단계 수를 제한하는 새로운 설정입니다."}]}]} />

필터를 프라이머리 키의 단일 연속 범위로 평가할 수 없는 경우, 예를 들어 첫 번째가 아닌 키 컬럼을 사용하는 경우 ClickHouse는 인덱스 마크에 대해 반복적인 일반 제외 검색 알고리즘을 실행합니다. 동일한 알고리즘은 텍스트 인덱스 분석에도 사용됩니다. 이 설정은 알고리즘이 각 데이터 파트에 대해 수행하는 단계 수(인덱스 검사 수)를 제한합니다.

예산은 먼저 가장 큰 남은 마크 범위에 사용됩니다. 예산이 소진되면 완전히 분석되지 않은 범위는 전체가 그대로 허용되므로 쿼리의 정확성은 유지되지만, 무제한 검색이 선택했을 때보다 더 많은 그래뉼을 읽을 수 있습니다. 예산을 낮추면 더 많은 데이터를 읽는 대신 인덱스 분석 속도가 빨라집니다. 이 제한은 분석 비용에 대한 엄격한 상한이라기보다 대략적인 값입니다. 검색은 대략 한 번의 분할 라운드 정도 이 한도를 초과할 수 있으며, 파트가 이미 많은 범위로 나뉘어 있는 경우(예: 쿼리 조건 캐시로 인해)에는 제한과 관계없이 각 범위를 최소 한 번씩 검사합니다.

검색이 각 데이터 파트에서 수행한 단계 수는 쿼리의 trace 수준 로그 메시지에 보고되며, `IndexGenericExclusionSearchStepLimitReached` 및 `TextIndexGenericExclusionSearchStepLimitReached` profile events는 예산이 소진된 횟수를 집계합니다.

(기본) 값 0은 단계 수가 무제한임을 의미합니다.

사용 가능한 값:

* 무제한 단계를 의미하는 0 또는 임의의 양의 정수.

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

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

하나의 쿼리에서 ClickHouse가 `merge_tree_max_bytes_to_use_cache`바이트를 초과하여 읽어야 하면 비압축 블록 캐시를 사용하지 않습니다.

비압축 블록 캐시는 쿼리용으로 추출된 데이터를 저장합니다. ClickHouse는 이 캐시를 사용해 반복적인 소규모 쿼리의 응답 속도를 높입니다. 이 설정은 많은 양의 데이터를 읽는 쿼리로 인해 캐시가 불필요하게 소모되는 것을 방지합니다. [uncompressed\_cache\_size](/docs/ko/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가 하나의 쿼리에서 `merge_tree_max_rows_to_use_cache`보다 많은 행을 읽어야 하는 경우, 비압축 블록 캐시를 사용하지 않습니다.

비압축 블록 캐시는 쿼리를 위해 추출된 데이터를 저장합니다. ClickHouse는 이 캐시를 사용하여 반복적으로 실행되는 소규모 쿼리의 응답 속도를 높입니다. 이 설정은 많은 양의 데이터를 읽는 쿼리로 인해 캐시가 불필요하게 소모되는 것을 방지합니다. [uncompressed\_cache\_size](/docs/ko/reference/settings/server-settings/settings#uncompressed_cache_size) 서버 설정은 비압축 블록 캐시의 크기를 정의합니다.

가능한 값:

* 모든 양의 정수.

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

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

[MergeTree](/docs/ko/reference/engines/table-engines/mergetree-family/mergetree) 엔진 테이블의 한 파일에서 읽어야 할 바이트 수가 `merge_tree_min_bytes_for_concurrent_read`를 초과하면, ClickHouse는 여러 스레드를 사용해 이 파일을 동시에 읽으려고 시도합니다.

가능한 값:

* 양의 정수.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "설정은 더 이상 사용이 권장되지 않습니다"}]}]} />

원격 파일 시스템에서 읽을 때 [MergeTree](/docs/ko/reference/engines/table-engines/mergetree-family/mergetree) 엔진이 병렬 읽기를 수행하기 전에 단일 파일에서 읽어야 하는 최소 바이트 수입니다. 이 설정은 사용하지 않는 것이 좋습니다.

가능한 값:

* 양의 정수.

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

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

하나의 파일에서 읽어야 하는 두 데이터 블록 사이의 거리가 `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": "새로운 설정"}]}]} />

작업 크기의 엄격한 하한값입니다(그래뉼 수가 적고 사용 가능한 스레드 수가 많더라도 더 작은 작업은 할당하지 않습니다

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

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

[MergeTree](/docs/ko/reference/engines/table-engines/mergetree-family/mergetree) 테이블 파일에서 읽어야 할 행 수가 `merge_tree_min_rows_for_concurrent_read`를 초과하면 ClickHouse는 여러 스레드를 사용해 해당 파일을 동시에 읽으려고 시도합니다.

가능한 값:

* 양의 정수.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "더 이상 권장되지 않는 설정"}]}]} />

원격 파일 시스템에서 읽는 경우, [MergeTree](/docs/ko/reference/engines/table-engines/mergetree-family/mergetree) 엔진이 읽기를 병렬화하기 전에 하나의 파일에서 읽어야 하는 최소 행 수입니다. 이 설정의 사용은 권장하지 않습니다.

가능한 값:

* 양의 정수.

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

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

하나의 파일에서 읽어야 하는 두 데이터 블록 사이의 거리가 `merge_tree_min_rows_for_seek`행보다 작으면, ClickHouse는 파일에서 읽기 위치를 이동하지 않고 데이터를 순차적으로 읽습니다.

가능한 값:

* 임의의 양의 정수.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "`PartsSplitter` 테스트용으로, 지정한 확률에 따라 MergeTree에서 읽을 때마다 읽기 범위를 서로 겹치는 범위와 겹치지 않는 범위로 분할합니다."}]}]} />

`PartsSplitter` 테스트용으로, 지정한 확률에 따라 MergeTree에서 읽을 때마다 읽기 범위를 서로 겹치는 범위와 겹치지 않는 범위로 분할합니다.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "쿼리의 스토리지 스냅샷 일관성을 디버그하기 위한 새로운 설정"}]}]} />

MergeTree 테이블의 스토리지 스냅샷을 생성할 때 인위적인 지연을 추가합니다(밀리초).
테스트 및 디버깅 용도로만 사용하십시오.

가능한 값:

* 0 - 지연 없음(기본값)
* N - 밀리초 단위 지연

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

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

원격 테이블에서 읽을 때 일정한 크기의 작업을 사용할지 여부입니다.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "MergeTree에서 역직렬화 프리픽스 캐시 사용을 제어하는 새로운 설정"}]}]} />

MergeTree에서 원격 디스크를 읽을 때 파일 프리픽스의 컬럼 메타데이터를 캐시하도록 활성화합니다.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "MergeTree에서 프리픽스 역직렬화에 스레드 풀을 병렬로 사용하는 방식을 제어하는 새로운 설정"}]}]} />

MergeTree의 Wide 파트에서 프리픽스를 병렬로 읽을 때 스레드 풀을 사용하도록 설정합니다. 해당 스레드 풀의 크기는 서버 설정 `max_prefixes_deserialization_thread_pool_size`로 제어됩니다.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "JSON 및 Dynamic 타입에 대한 새로운 V2 직렬화 버전 추가"}]}]} />

활성화하면 MergeTree에서 JSON 및 Dynamic 타입에 V2 대신 V1 직렬화 버전이 사용됩니다. 이 설정 변경은 서버를 다시 시작한 후에만 적용됩니다.
