> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# min_* MergeTree 테이블 설정

> min_* 생성 그룹에 속한 ClickHouse MergeTree 테이블 설정입니다.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["버전", "기본값", "설명"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        버전 이력
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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.merge\_tree\_settings](/ko/reference/system-tables/merge_tree_settings)에서 확인할 수 있으며 ClickHouse 소스 코드에서 자동 생성됩니다.

## min\_absolute\_delay\_to\_close

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

종료하고, 요청 처리를 중단하며, status check에서
Ok를 반환하지 않기까지의 최소 절대 지연 시간입니다.

## min\_columns\_to\_activate\_adaptive\_write\_buffer

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "500"},{"label": "새로운 설정"}]}]} />

적응형 쓰기 버퍼를 사용해 컬럼이 많은 테이블의 메모리 사용량을 줄일 수 있습니다.

와이드 파트가 쓰는 스트림 수를 기준으로 비교합니다. 이 수는 컬럼 수를 크게 초과할 수 있습니다.
버킷이 많은 `Map` 또는 깊게 중첩된 `Array`나 `Tuple`은 단일 컬럼에 대해 많은 스트림을 쓰며,
스트림마다 하나의 쓰기 버퍼가 할당됩니다.

가능한 값:

* 0 - 비활성화
* 1 - 항상 활성화

## min\_compress\_block\_size

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

다음 mark를 기록할 때 압축을 수행하는 데 필요한 비압축 데이터 블록의
최소 크기입니다. 이 설정은 전역 설정에서도 지정할 수 있습니다
([min\_compress\_block\_size](/ko/reference/settings/merge-tree-settings/min#min_compress_block_size)
설정 참조). 테이블을 생성할 때 지정한 값은 이 설정의 전역 값을
재정의합니다.

## min\_index\_granularity\_bytes

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

데이터 그래뉼의 허용되는 최소 크기(바이트 단위)입니다.

실수로 `index_granularity_bytes`가 매우 낮은 테이블을 생성하지 않도록 하는 보호 장치입니다.

## min\_marks\_to\_honor\_max\_concurrent\_queries

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

[max\_concurrent\_queries](/ko/reference/settings/merge-tree-settings/max#max_concurrent_queries)
설정을 적용할 때 쿼리에서 읽어야 하는 최소 마크 수입니다.

<Note>
  쿼리는 다른 `max_concurrent_queries` 설정에 의해서도 계속 제한될 수 있습니다.
</Note>

가능한 값:

* 양의 정수입니다.
* `0` — 비활성화됨(`max_concurrent_queries` 제한이 어떤 쿼리에도 적용되지 않음).

**예시**

```xml theme={null}
<min_marks_to_honor_max_concurrent_queries>10</min_marks_to_honor_max_concurrent_queries>
```

## min\_merge\_bytes\_to\_use\_direct\_io

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

스토리지 디스크에 대한 direct
I/O 액세스를 사용하기 위해 필요한 머지 작업의 최소 데이터 볼륨입니다. 데이터 파트를 머지할 때 ClickHouse는
머지할 모든 데이터의 총 스토리지 볼륨을 계산합니다. 이 볼륨이
`min_merge_bytes_to_use_direct_io` 바이트를 초과하면, ClickHouse는
direct I/O 인터페이스(`O_DIRECT` 옵션)를 사용해 스토리지 디스크에서 데이터를 읽고
씁니다.
`min_merge_bytes_to_use_direct_io = 0`이면 direct I/O가 비활성화됩니다.

## min\_partition\_age\_to\_force\_merge\_seconds

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "더 이상 삽입이 발생하지 않는 파티션의 파트 머지를 강제하는 새로운 설정"}]}]} />

파티션 내 모든 파트가 이 값보다 오래된 경우, 즉 해당 파티션에 더 이상 삽입이 들어오지
않는 경우 그 파티션의 파트를 머지합니다. `min_age_to_force_merge_on_partition_only`와
함께 사용하는 `min_age_to_force_merge_seconds`와 달리, 파티션이 단일 머지에 모두 담길
필요는 없습니다. 각 머지는 여전히
`max_bytes_to_merge_at_max_space_in_pool`을 준수합니다. Simple 및
StochasticSimple 머지 선택기에서 동작합니다.

여기서 비교되는 수명은 파티션 내에서 가장 최근에 생성된 파트의 수명
(`now - modification_time`을 파트들에 대해 최소화한 값)이므로, 모든 파트가 이 값을
넘어설 만큼 오래되었을 때에만 규칙이 활성화됩니다. 새로운 파트가 생기면 이 값은
초기화됩니다. 삽입, 뮤테이션은 물론 이 설정 자체가 할당하는 각 머지도 마찬가지인데,
머지된 파트 역시 새로운 파트이기 때문입니다. 따라서 강제 머지가 수행되는 즉시 강제 동작은
해제되며, 새로운 파트 없이 이 값만큼의 시간이 다시 경과한 후에야 재활성화됩니다. 그
결과 여러 번의 머지가 필요한 파티션은 한 번에 연속으로 처리되지 않고, 이 인터벌만큼
간격을 둔 여러 차례에 걸쳐 압축됩니다.

강제 동작은 `min_age_to_force_merge_seconds`와 정확히 동일하게 작동합니다. 일반적으로
불균형한 머지가 할당되지 않도록 막는 크기 비율 요건을 면제하며,
`min_parts_to_merge_at_once` 하한도 면제합니다. 따라서 강제 머지는 그 하한이 요구하는
것보다 적은 수의 파트를 대상으로 할 수 있습니다. 그 밖의 휴리스틱은 비활성화되지
않습니다. `merge_selector_window_size`는 여전히 검토 대상 파트의 범위를 제한하며,
`merge_selector_enable_heuristic_to_remove_small_parts_at_right`는 여전히 3개 이상의
파트로 구성된 선택 범위에서 뒤쪽의 작은 파트를 잘라냅니다. 워크로드에 따라 이들 중
비활성화가 필요한 항목은 해당 설정을 통해 명시적으로 비활성화해야 합니다.

Simple 및 StochasticSimple 머지 선택기에서는
`min_age_to_force_merge_on_partition_only`와 함께 사용하는
`min_age_to_force_merge_seconds`와 조합할 수 없습니다. 해당 조합은 파티션 전체를 한
번에 머지하며, 그러한 머지만이 final로 표시되는데, 바로 이 점이 `ReplacingMergeTree`가
`CLEANUP`을 실행할 수 있게 해 줍니다. 파티션 수명에 따라 일반 머지를
강제하면 이를 선점하게 됩니다. 단일 머지에 모두 담기는 파티션에는 해당 조합을, 그렇지
않은 파티션에는 이 설정을 사용하십시오. 다른 선택기는 이 설정을 무시하므로, 이들과의
조합은 허용됩니다.

가능한 값:

* 양의 정수.

## min\_parts\_to\_merge\_at\_once

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

머지 선택기가 한 번에 선택해 머지할 수 있는 데이터 파트의 최소 개수입니다
(전문가 수준의 설정이므로, 어떤 동작을 하는지 이해하지 못했다면 변경하지 마십시오).
0 - 비활성화됩니다. Simple 및 StochasticSimple 머지 선택기에 적용됩니다.

## min\_replicated\_logs\_to\_keep

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

더 이상 사용되지 않는 오래된 항목이라도 ZooKeeper 로그에서 최근 레코드를 대략 이 개수만큼 유지합니다. 이 설정은 테이블 동작에는 영향을 주지 않으며, 정리 전에 ZooKeeper 로그를 진단할 때만 사용됩니다.

가능한 값:

* 모든 양의 정수.
