Skip to main content
이 설정들은 system.settings에서 확인할 수 있으며 소스 코드를 바탕으로 자동 생성됩니다.

max_bytes_before_external_group_by

Cloud 기본값: 레플리카당 메모리 용량의 절반입니다. 외부 메모리에서 GROUP BY 절을 실행할지 여부를 설정합니다. (외부 메모리에서의 GROUP BY 참조) 가능한 값:
  • 단일 GROUP BY 작업에 사용할 수 있는 최대 RAM 용량(바이트)입니다.
  • 0 — 외부 메모리에서 GROUP BY를 실행하지 않습니다.
GROUP BY 작업 중 메모리 사용량이 이 바이트 단위 임계값을 초과하면 ‘외부 집계(external aggregation)’ 모드가 활성화됩니다(중간 데이터를 디스크에 스필).권장 값은 사용 가능한 시스템 메모리의 절반입니다.

max_bytes_before_external_join

0이 아닌 값으로 설정하고 join_algorithmhash, parallel_hash, default 또는 auto인 경우, 오른쪽 데이터가 이 바이트 수를 초과하면 디스크로 스필할 수 있도록 해시 조인이 자동으로 grace hash join으로 변환됩니다. 0(기본값)으로 설정하면 이 절대 바이트 임계값은 비활성화되지만, max_bytes_ratio_before_external_join(기본값 0.5)을 통해 자동 스필이 계속 발생할 수 있습니다. 자동 스필을 완전히 비활성화하려면 두 값 모두 0으로 설정하십시오. 이 설정을 사용하면 조인을 통한 read in order 최적화는 적용되지 않습니다.

max_bytes_before_external_sort

Cloud 기본값: 레플리카당 메모리 용량의 절반입니다. ORDER BY 절을 외부 메모리를 사용해 실행할지 여부를 설정합니다. ORDER BY 구현 세부 사항을 참조하십시오. ORDER BY 작업 중 메모리 사용량이 바이트 단위의 이 임계값을 초과하면 “외부 정렬” 모드(중간 데이터를 디스크에 스필)가 활성화됩니다. 가능한 값:
  • 단일 ORDER BY 작업에 사용할 수 있는 최대 RAM 용량(바이트)입니다. 권장 값은 사용 가능한 시스템 메모리의 절반입니다.
  • 0 — 외부 메모리를 사용하는 ORDER BY가 비활성화됩니다.

max_bytes_before_remerge_sort

ORDER BY와 LIMIT를 함께 사용하는 경우, 메모리 사용량이 지정된 임계값을 초과하면 상위 LIMIT개 행만 유지하도록 최종 머지 전에 블록을 추가로 머지합니다.

max_bytes_for_lazy_final

지연 실행 FINAL 최적화에서 사용하는 집합의 최대 바이트 수입니다. 이 값을 초과하면 일반 FINAL로 되돌아갑니다.

max_bytes_in_distinct

DISTINCT를 사용할 때 해시 테이블이 사용하는 메모리 내 상태의 최대 크기(비압축 바이트 기준)입니다.

max_bytes_in_join

테이블 조인 시 사용되는 오른쪽 데이터 구조(일반적으로 해시 테이블)의 최대 크기(바이트)입니다. 이 설정은 SELECT … JOIN 연산과 Join 테이블 엔진에 적용됩니다. 쿼리에 여러 개의 조인이 포함된 경우 ClickHouse는 모든 중간 결과에 대해 이 설정을 확인합니다. 제한에 도달하면 동작은 선택한 join_algorithm에 따라 달라집니다. 알고리즘별 동작(spill, 재파티셔닝, 전환 또는 join_overflow_mode에 따른 throw/break)은 해당 설정을 참조하십시오. 가능한 값:
  • 양의 정수
  • 0 — 메모리 제어가 비활성화됩니다.

max_bytes_in_set

서브쿼리로 생성된 IN 절의 집합에서 사용할 수 있는 최대 바이트 수(비압축 데이터 기준)입니다.

max_bytes_ratio_before_external_group_by

가용 메모리 중 GROUP BY에 사용할 수 있는 비율입니다. 이 값에 도달하면 집계를 위해 외부 메모리를 사용합니다. 예를 들어 0.6으로 설정하면 실행 시작 시 GROUP BY는 가용 메모리의 60% (서버/사용자/머지 기준)까지 사용할 수 있으며, 이후에는 외부 집계를 사용하기 시작합니다.

max_bytes_ratio_before_external_join

JOIN에 사용할 수 있는 가용 메모리 비율입니다. 이 값에 도달하면 해시 조인이 grace hash join으로 전환되어 오른쪽 데이터를 디스크로 스필합니다. 예를 들어 0.6으로 설정하면 실행 시작 시 JOIN의 오른쪽 해시 테이블이 가용 메모리(서버/사용자/머지에 할당된 메모리 기준)의 60%까지 사용할 수 있으며, 그 이후부터는 디스크로 스필하기 시작합니다. max_bytes_before_external_joinmax_bytes_ratio_before_external_join이 모두 설정된 경우 계산된 임계값 중 더 작은 값이 사용됩니다. 비율이 0이면 절대값 설정만 적용됩니다. join_algorithmhash, parallel_hash, default, auto 중 하나이고 임시 데이터 경로가 구성된 경우에만 적용됩니다.

max_bytes_ratio_before_external_sort

ORDER BY에 사용할 수 있는 가용 메모리의 비율입니다. 이 값에 도달하면 외부 정렬이 사용됩니다. 예를 들어 0.6으로 설정하면 실행 시작 시 ORDER BY에서 가용 메모리(서버/사용자/머지 기준)의 60%까지 사용할 수 있고, 그 이후부터는 외부 정렬을 사용하기 시작합니다. 참고로 max_bytes_before_external_sort는 계속 적용되며, 정렬 block이 max_bytes_before_external_sort보다 큰 경우에만 디스크로 스필됩니다.

max_bytes_to_read

쿼리 실행 시 테이블에서 읽을 수 있는 최대 바이트 수(압축되지 않은 데이터 기준)입니다. 이 제한은 처리되는 각 데이터 청크마다 확인되며, 가장 안쪽의 테이블 표현식에만 적용됩니다. 원격 서버에서 읽는 경우에는 원격 서버에서만 확인됩니다.

max_bytes_to_read_leaf

분산 쿼리를 실행할 때 리프 노드의 로컬 테이블에서 읽을 수 있는 최대 바이트 수(비압축 데이터 기준)입니다. 분산 쿼리는 각 세그먼트(리프)에 여러 개의 하위 쿼리를 보낼 수 있지만, 이 제한은 리프 노드의 읽기 단계에서만 검사되며 루트 노드에서 결과를 병합하는 단계에서는 무시됩니다. 예를 들어, 클러스터가 2개의 세그먼트로 구성되어 있고 각 세그먼트에 100바이트의 데이터가 있는 테이블이 있다고 가정합니다. max_bytes_to_read=150 설정으로 두 테이블의 모든 데이터를 읽도록 하는 분산 쿼리는 전체 크기가 200바이트가 되므로 실패합니다. max_bytes_to_read_leaf=150인 쿼리는 리프 노드가 최대 100바이트만 읽으므로 성공합니다. 이 제한은 처리되는 각 데이터 청크에 대해 검사됩니다.
이 설정은 prefer_localhost_replica=1과 함께 사용할 때 안정적이지 않습니다.

max_bytes_to_sort

정렬 전에 처리할 수 있는 최대 바이트 수입니다. ORDER BY 작업에서 지정된 양보다 많은 비압축 바이트를 처리해야 하는 경우, 동작은 sort_overflow_mode에 따라 결정되며 기본값은 throw입니다.

max_bytes_to_transfer

GLOBAL IN/JOIN 절이 실행될 때 원격 서버로 전달하거나 임시 테이블에 저장할 수 있는 최대 바이트 수(비압축 데이터)입니다.
마지막 수정일 2026년 7월 23일