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

# max_* MergeTree 테이블 설정

> max_*로 생성된 그룹의 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 소스에서 자동 생성됩니다.

## max\_avg\_part\_size\_for\_too\_many\_parts

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

'parts\_to\_delay\_insert' 및
'parts\_to\_throw\_insert'에 따른 'too many parts' 검사는 해당
파티션의 평균 파트 크기가 지정된 임계값보다 크지 않은 경우에만 활성화됩니다. 평균
파트 크기가 지정된 임계값보다 크면 INSERT는 지연되거나 거부되지
않습니다. 따라서 파트가 더 큰 파트로 성공적으로 머지되면 단일
서버의 단일 테이블에 수백 테라바이트의 데이터를 저장할 수 있습니다. 이는
비활성 파트 또는 전체 파트의 임계값에는 영향을 주지 않습니다.

## max\_buckets\_in\_map

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "32"},{"label": "'with_buckets' Map serialization의 최대 버킷 수를 제어하는 설정이 추가되었습니다"}]}]} />

`Map` serialization의 최대 버킷 수입니다. `with_buckets` `Map` serialization에서 사용됩니다.
실제 버킷 수는 [map\_buckets\_strategy](/ko/reference/settings/merge-tree-settings/map-buckets#map_buckets_strategy)에 따라 결정됩니다.
허용되는 최대값은 256입니다.

## max\_cleanup\_delay\_period

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

오래된 큐 로그, 블록 해시 및 파트를 정리하는 최대 주기입니다.

## max\_compress\_block\_size

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

테이블에 쓰기 위해 압축하기 전에, 압축되지 않은 데이터 블록의 최대
크기입니다. 이 설정은 전역 설정에서도 지정할 수 있습니다
([max\_compress\_block\_size](/ko/reference/settings/merge-tree-settings/max#max_compress_block_size)
설정 참조). 테이블 생성 시 지정한 값은 이 설정의 전역
값을 재정의합니다.

## max\_concurrent\_queries

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

MergeTree 테이블과 관련된 쿼리를 동시에 실행할 수 있는 최대 개수입니다.
쿼리는 다른 `max_concurrent_queries` 설정의 적용도 받습니다.

Possible values:

* 양의 정수.
* `0` — 제한 없음.

기본값: `0` (제한 없음).

**예시**

```xml theme={null}
<max_concurrent_queries>50</max_concurrent_queries>
```

## max\_digestion\_size\_per\_segment

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "268435456"},{"label": "더 이상 사용되지 않는 설정"}]}]} />

더 이상 사용되지 않는 설정이며, 아무런 효과가 없습니다.

## max\_file\_name\_length

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

해싱하지 않고 파일 이름을 그대로 유지할 수 있는 최대 길이입니다.
이 설정은 `replace_long_file_name_to_hash` 설정이 활성화된 경우에만 적용됩니다.
이 설정값에는 파일 확장자의 길이가 포함되지 않습니다. 따라서
파일 시스템 오류를 방지할 수 있도록 여유를 두고 최대 파일 이름 길이(보통 255
바이트)보다 작게 설정하는 것이 좋습니다.

## max\_partitions\_to\_read

<SettingsInfoBlock type="Int64" default_value="-1" />

하나의 쿼리에서 액세스할 수 있는 파티션의 최대 개수를 제한합니다.

table을 생성할 때 지정한 설정 값은
쿼리 수준 설정으로 재정의할 수 있습니다.

가능한 값:

* 모든 양의 정수

쿼리 / 세션 / profile 수준에서 쿼리 복잡도 설정 [max\_partitions\_to\_read](/ko/reference/settings/session-settings/max-partitions#max_partitions_to_read)를
지정할 수도 있습니다.

## max\_projections

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

MergeTree 프로젝션의 최대 개수입니다.

## max\_table\_size\_bytes\_compressed

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "테이블의 모든 활성 및 비활성 데이터 파트에서 압축된 총 바이트 수를 제한하는 새로운 설정입니다."}]}]} />

테이블의 모든 활성 및 비활성 데이터 파트에서 압축된 총 바이트 수(디스크상 크기)가 이 값을 초과하면 `Table size limit exceeded` 예외가 발생하며 `INSERT`가 중단됩니다. 이 설정은 디스크 사용량을 제한하기 위한 것이므로 비활성 파트도 계산에 포함됩니다. 비활성 파트는 백그라운드에서 제거되므로(`old_parts_lifetime` 설정 참고) 시간이 지나면 관찰되는 크기가 줄어들 수 있습니다. 제한은 `INSERT` 시작 시와 백그라운드 머지 및 뮤테이션 결과를 포함한 새 데이터 파트가 작업 집합에 커밋될 때 확인됩니다. materialized view에서 수행하는 삽입도 확인됩니다. 복제된 fetch에서는 제한을 확인하지 않으므로 여러 레플리카에 병렬로 삽입할 경우 제한을 초과할 수 있는 race condition이 발생할 수 있습니다. 빈 데이터 파트의 커밋은 항상 허용되므로, 예를 들어 `TRUNCATE` 또는 `ALTER TABLE ... DROP
PARTITION`을 사용해 제한을 초과한 테이블에서 데이터를 제거할 수 있습니다.

가능한 값:

* 양의 정수.
* 0 — 제한 없음.

다중 테넌트, 임시 및 데모 서비스에 유용합니다.

## max\_table\_size\_bytes\_uncompressed

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "테이블의 모든 활성 및 비활성 데이터 파트에 걸친 압축되지 않은 바이트 총량을 제한하는 새로운 설정입니다."}]}]} />

`max_table_size_bytes_compressed`와 동일하지만, 테이블의 모든 활성 및 비활성 데이터
파트에 걸친 압축되지 않은 바이트 총량에 제한이 적용됩니다.

가능한 값:

* 양의 정수.
* 0 — 제한 없음.

다중 테넌트, 임시 및 데모 서비스에 유용합니다.

## max\_table\_size\_rows

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "테이블의 활성 데이터 파트에 포함된 총 행 수를 제한하는 새로운 설정."}]}]} />

테이블의 활성 데이터 파트에 포함된 총 행 수가 이 값을 초과하면 `INSERT`가
`Table size limit exceeded` 예외와 함께 중단됩니다. 이 제한은 `INSERT` 시작 시점과
새로운 데이터 파트가 작업 집합에 커밋될 때 검사되며, 백그라운드 머지 및
뮤테이션의 결과도 검사 대상에 포함됩니다(따라서 테이블 크기를 제한 이상으로 늘리는 뮤테이션은
완료되지 못하고 재시도됩니다). materialized view가 수행하는 삽입도 검사 대상입니다.
복제된 fetch에는 이 제한이 적용되지 않으므로, 여러 레플리카에 병렬로 삽입할 때
제한을 초과하게 되는 race condition이 발생할 수 있습니다. 빈 데이터 파트의 커밋은
항상 허용되므로, 제한을 초과한 테이블에서도 `TRUNCATE`나
`ALTER TABLE ... DROP PARTITION` 등으로 데이터를 삭제할 수 있습니다.

가능한 값:

* 양의 정수.
* 0 — 무제한.

다중 테넌트, 임시, 데모 서비스에 유용합니다.

## max\_uncompressed\_bytes\_in\_patches

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

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

모든 패치 파트에 있는 데이터의 최대 압축되지 않은 크기(바이트)입니다.
모든 패치 파트의 데이터 양이 이 값을 초과하면 경량 업데이트가 거부됩니다.
0 - 무제한.
