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

enable_adaptive_aggregator

적응형 GROUP BY 알고리즘을 활성화합니다. 각 스레드는 adaptive_aggregator_freeze_threshold개의 키(또는 adaptive_aggregator_freeze_threshold_bytes만큼의 메모리)에 도달할 때까지 로컬 해시 테이블에서 집계한 후 테이블을 고정합니다. 그러면 이미 확인된(빈번한) 키의 행은 해당 테이블에서 계속 갱신되고, 새로운(드문) 키는 해시에 따라 버킷별 백로그로 전달되어 버킷 병렬 머지 내에서 정확히 한 번 집계됩니다. 빈번한 키는 캐시에 상주하는 작은 테이블에 유지되며, 드문 키는 스레드마다 한 번씩이 아니라 한 번만 저장하고 처리합니다. 외부 집계 설정(max_bytes_before_external_group_by, max_bytes_ratio_before_external_group_by)도 적용됩니다. 임계값을 초과하면 백로그를 공유 테이블로 조기에 비우며, 그래도 임계값 아래로 내려가지 않으면 일반 외부 집계를 통해 공유 테이블을 디스크에 spill합니다.

enable_adaptive_memory_spill_scheduler

프로세서가 데이터를 외부 스토리지로 적응적으로 spill하도록 트리거합니다. 현재는 grace join만 지원합니다.

enable_add_distinct_to_in_subqueries

IN 서브쿼리에서 DISTINCT를 활성화합니다. 이 설정은 절충이 필요한 설정입니다. 활성화하면 고유한 값만 전송되므로, 분산 IN 서브쿼리에 대해 전송되는 임시 테이블의 크기를 크게 줄이고 세그먼트 간 데이터 전송 속도도 크게 높일 수 있습니다. 다만 이 설정을 활성화하면 중복 제거(DISTINCT)를 수행해야 하므로 각 노드에서 추가 병합 작업이 발생합니다. 네트워크 전송이 병목이고 추가 병합 비용을 감수할 수 있다면 이 설정을 사용하십시오.

enable_alp_codec

실험적 ALP 압축 코덱을 사용할 수 있도록 합니다.

enable_automatic_decision_for_merging_across_partitions_for_final

설정된 경우, 파티션 키 표현식이 deterministic이고 파티션 키 표현식에 사용된 모든 컬럼이 프라이머리 키에 포함되면 ClickHouse가 이 최적화를 자동으로 활성화합니다. 이 자동 판별을 통해 동일한 기본 키 값을 가진 행은 항상 동일한 파티션에 속하게 되므로, 파티션 간 머지를 피해도 안전합니다.

enable_cascades_optimizer

분산 쿼리 계획에 Cascades 비용 기반 최적화기를 활성화합니다. make_distributed_plan = 1과 함께 설정한 경우에만 적용됩니다. 이 설정만으로는 단일 노드 쿼리 계획이 변경되지 않습니다.

enable_early_constant_folding

함수와 서브쿼리의 결과를 분석하고, 여기에 상수가 있으면 쿼리를 재작성하는 쿼리 최적화를 활성화합니다

enable_extended_results_for_datetime_functions

확장된 범위의 Date32 타입(Date 타입 대비) 또는 확장된 범위의 DateTime64 타입(DateTime 타입 대비) 결과를 반환하도록 설정하거나 해제합니다. Possible values:
  • 0 — 함수는 모든 인수 타입에 대해 Date 또는 DateTime을 반환합니다.
  • 1 — 함수는 Date32 또는 DateTime64 인수에 대해서는 Date32 또는 DateTime64를 반환하고, 그 외의 경우에는 Date 또는 DateTime을 반환합니다.
아래 표는 다양한 날짜-시간 함수에서 이 설정이 어떻게 동작하는지 보여줍니다.

enable_full_text_index

별칭: allow_experimental_full_text_index true로 설정하면 텍스트 인덱스 사용이 허용됩니다.

enable_function_early_short_circuit

쿼리 분석 중 andor에 대한 조기 단락 상수 폴딩을 활성화합니다. 활성화하면 조건을 충족하는 실행 불가 스칼라 하위 쿼리 분기는 타입을 보존하고 쿼리 의미를 검증하기 위해 분석되지만 실행되지는 않습니다. 스칼라 카디널리티 또는 런타임 값이 필요한 경우에는 일반 분석으로 되돌아갑니다.

enable_global_with_statement

WITH 문을 UNION 쿼리와 모든 서브쿼리에 전파합니다

enable_group_by_top_k_optimization

GROUP BY keys ORDER BY <prefix of keys> LIMIT K 쿼리와 ORDER BY 없는 GROUP BY keys LIMIT K 쿼리에서 집계 중 TopK 필터링 최적화를 활성화합니다. 후자의 경우 임의의 K개 그룹이 유효한 결과이므로 모든 키에 대한 정렬이 내부적으로 생성됩니다. 활성화하면 집계기는 지금까지 확인한 상위 K개 키를 담는 크기 제한 힙을 유지하며, 그룹화 키가 최종 결과에 포함될 수 없는 새 행은 해시 테이블에 삽입하지 않습니다. 이렇게 하면 뒤이은 ORDER BY ... LIMIT에서 제외될 행을 집계하지 않아도 됩니다. 또한 힙이 전체 GROUP BY 키의 순위를 매길 수 있으면 중간 해시 테이블에서 축출된 그룹을 프루닝하여, 해시 테이블 크기를 고유 키 수가 아닌 LIMIT로 제한합니다. ORDER BYGROUP BY 키의 일부 선행 접두사만 포함하는 경우에는 순위로 전체 그룹을 식별할 수 없으므로 행 스키핑만 적용됩니다. 해시 테이블은 허용된 모든 그룹을 유지하므로 나머지 키 컬럼의 카디널리티에 따라 계속 커질 수 있습니다. 요청한 LIMITquery_plan_max_limit_for_top_k_optimization 또는 하드 제한인 100000보다 크면, 힙의 메모리 및 CPU 비용이 요청한 LIMIT에 따라 증가하므로 이 최적화는 비활성화됩니다. 그룹을 프루닝하면 결과가 달라질 수 있는 쿼리 형태에서는 이 최적화를 건너뜁니다. 여기에는 WITH TOTALS, HAVING, QUALIFY, 윈도우 함수, ROLLUP/CUBE/GROUPING SETS, LIMIT WITH TIES, 일치하는 GROUP BY 키의 COLLATE(GROUP BY 키 전체 접두사 이후의 ORDER BY 컬럼에 적용된 COLLATE는 어떤 그룹이 조건을 충족하는지에 영향을 주지 않으므로 최적화를 비활성화하지 않음), 집계 항목 또는 GROUP BY 키의 선행 접두사가 아닌 항목에 대한 ORDER BY, 그리고 max_rows_to_group_by 또는 exact_rows_before_limit가 설정된 경우가 포함됩니다. 가능한 값:
  • 0 — 비활성화됨.
  • 1 — 활성화됨.

enable_hash_join_row_store

해시 조인의 페이로드를 행 중심 레이아웃으로 변환할 수 있도록 합니다.

enable_hdfs_pread

HDFS 파일에 pread를 사용할지 설정합니다. 기본적으로 hdfsPread를 사용합니다. 비활성화하면 HDFS 파일을 읽을 때 hdfsReadhdfsSeek를 사용합니다.

enable_http_compression

HTTP 요청 응답에서 데이터 압축을 활성화하거나 비활성화합니다. 자세한 내용은 HTTP 인터페이스 설명을 참조하십시오. 가능한 값:
  • 0 — 비활성화됨.
  • 1 — 활성화됨.

enable_identifier_resolve_cache

쿼리 분석기에서 식별자 해석 캐시를 활성화합니다. 이 캐시는 해석된 별칭(alias) 노드를 공유하여 동일한 별칭이 여러 번 참조될 때 AST가 과도하게 증가하는 것을 방지합니다. 잘못된 결과가 의심되면 캐싱을 비활성화하려면 false로 설정하십시오.

enable_job_stack_trace

작업 실행 결과 예외가 발생하면 작업 생성자의 스택 트레이스를 출력합니다. 성능 오버헤드를 방지하기 위해 기본적으로 비활성화됩니다.

enable_json_ast_dialect

dialect 설정의 clickhouse_json 값을 활성화합니다. dialectclickhouse_json으로 설정하면 쿼리는 SQL 텍스트 대신 JSON AST (parseQueryToJSON의 출력)로 해석됩니다. 방언을 다시 전환할 수 있도록 SET 쿼리는 계속 일반 SQL로 파싱됩니다. 예시:

enable_lazy_columns_replication

JOIN, ARRAY JOIN 및 고차 함수(예: arrayMap)의 lambda 캡처에서 컬럼 지연 복제를 활성화합니다. 이를 통해 메모리에서 동일한 행을 여러 번 불필요하게 복사하지 않아도 됩니다.

enable_materialized_cte

구체화된 공통 테이블 표현식을 활성화합니다. 이 설정은 enable_global_with_statement보다 우선 적용됩니다.

enable_memory_bound_merging_of_aggregation_results

집계에 메모리 제한 기반 병합 전략을 사용합니다.

enable_multiple_prewhere_read_steps

WHERE의 더 많은 조건을 PREWHERE로 이동하고, AND로 결합된 여러 조건이 있으면 디스크 읽기와 필터링을 여러 단계에 걸쳐 수행합니다

enable_named_columns_in_function_tuple

모든 이름이 고유하고 따옴표 없이 식별자로 취급할 수 있는 경우 tuple() 함수에서 이름이 지정된 Tuple을 생성합니다.

enable_order_by_all

ORDER BY ALL 구문을 사용한 정렬 기능을 활성화하거나 비활성화합니다. 자세한 내용은 ORDER BY를 참조하십시오. 가능한 값:
  • 0 — ORDER BY ALL을 비활성화합니다.
  • 1 — ORDER BY ALL을 활성화합니다.
예시 쿼리:
결과:

enable_packed_string_keys_in_aggregation

널을 허용하지 않는 단일 String 키를 사용하는 GROUP BY에 16바이트 패킹 문자열 참조(PackedStringRef)를 키로 하는 해시 테이블을 사용합니다. 최대 11바이트의 키는 패킹된 참조에 인라인으로 저장되며, 더 긴 키는 arena에 대한 참조로 저장됩니다. 대부분의 워크로드에서 더 빠르지만, 11바이트보다 긴 고유 키가 매우 적은 GROUP BY에서는 레거시 메서드보다 느릴 수 있습니다. 특히 키 길이가 12..24바이트일 때 두드러집니다. 레거시 해시 테이블은 키를 셀에 인라인으로 유지하는 반면, 패킹된 해시 테이블은 매 탐색마다 arena 포인터를 역참조하기 때문입니다. 비활성화하면 레거시 StringHashTable 기반 메서드(26.8 이전의 기본값)를 사용합니다. 분산 쿼리에 참여하는 모든 서버는 이 값이 일치해야 합니다. distributed_aggregation_memory_efficient를 사용하면 2단계 버킷 번호는 키 해시에 따라 달라지며, 이 해시는 두 메서드에서 서로 다릅니다. 따라서 이 설정이 서로 다른 서버는 동일한 키를 서로 다른 버킷으로 분할해 잘못 머지된 결과를 생성할 수 있습니다. 값의 일치를 보장하기 위해 시작 노드는 서버 또는 프로필 기본값에서만 가져온 경우에도 보조 쿼리와 함께 유효 값을 항상 전송하여 원격 서버의 기본값을 재정의합니다.

enable_parsing_to_custom_serialization

true인 경우, 테이블에서 가져온 직렬화 힌트에 따라 데이터를 사용자 지정 직렬화(예: Sparse)가 적용된 컬럼으로 직접 파싱할 수 있습니다.

enable_producing_buckets_out_of_order_in_aggregation

메모리 효율적인 집계(distributed_aggregation_memory_efficient 참고)에서 버킷이 순서와 다르게 생성되도록 허용합니다. 이 설정은 집계 버킷 크기가 치우쳐 있을 때, 레플리카가 id가 낮은 무거운 버킷 일부를 아직 처리하는 동안 id가 더 높은 버킷을 initiator로 전송할 수 있게 하여 성능을 향상시킬 수 있습니다. 단점은 메모리 사용량이 더 늘어날 수 있다는 점입니다.

enable_quantized_codec

실험적 Quantized 압축 코덱을 사용할 수 있습니다.

enable_reads_from_query_cache

활성화되면 SELECT 쿼리의 결과를 쿼리 캐시에서 가져옵니다. 가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

enable_s3_requests_logging

S3 request에 대한 매우 상세한 로깅을 활성화합니다. Debug 용도로만 사용하는 것이 좋습니다.

enable_scalar_subquery_optimization

true로 설정하면 스칼라 서브쿼리에서 큰 스칼라 값의 직렬화/역직렬화를 방지하고, 가능하면 동일한 서브쿼리를 두 번 이상 실행하지 않도록 합니다.

enable_scopes_for_with_statement

비활성화하면 상위 WITH 절의 선언은 현재 스코프에 선언된 것과 같은 스코프에서 동작합니다. 이는 이전 분석기가 실행할 수 있었던 일부 유효하지 않은 쿼리를 실행할 수 있도록 하기 위한 분석기의 compatibility 설정이라는 점에 유의하십시오.

enable_sharding_aggregator

그룹화 키를 해시하여 행을 여러 스레드에 분산하는 세그먼트 분할 GROUP BY 최적화를 활성화합니다. 이를 통해 각 스레드는 머지 단계 없이 서로 겹치지 않는 키 부분 집합을 집계합니다. 이 방식은 데이터가 고르게 분포된 카디널리티가 높은 키에서 효율적이지만, 키 분포가 심하게 치우쳐 있거나 서로 다른 키가 매우 적은 쿼리에서는 성능이 떨어질 수 있습니다. 가능한 값:
  • 0 — 세그먼트 분할 집계 최적화가 비활성화됩니다.
  • 1 — 세그먼트 분할 집계 최적화가 활성화됩니다.

enable_shared_storage_snapshot_in_query

활성화하면 단일 쿼리 내의 모든 서브쿼리가 각 테이블에 대해 동일한 StorageSnapshot을 공유합니다. 따라서 동일한 테이블에 여러 번 접근하더라도 쿼리 전체에서 일관된 데이터 뷰가 보장됩니다. 이는 데이터 파트(data part)의 내부 일관성이 중요한 쿼리에서 필요합니다. 예시:
이 설정이 없으면 외부 쿼리와 내부 쿼리가 서로 다른 데이터 스냅샷을 기준으로 처리될 수 있어, 잘못된 결과가 나올 수 있습니다. 가능한 값:
  • 0 - 비활성화됨
  • 1 - 활성화됨

enable_sharing_sets_for_mutations

IN 서브쿼리용으로 생성된 Set 객체를 동일한 뮤테이션의 여러 작업 간에 공유할 수 있도록 합니다. 이렇게 하면 메모리 사용량과 CPU 사용량을 줄일 수 있습니다.

enable_streaming_queries

SELECT ... FROM t STREAM [CURSOR '{...}'] 지속 쿼리를 허용합니다. 비활성화되면 STREAM 수정자를 사용하는 모든 테이블 표현식이 계획 생성 시점에 거부됩니다. 이는 streaming-queries 기능을 위한 상위 제어 설정이며, 추가 기능은 각자의 설정으로 별도로 제어될 수 있습니다.

enable_sz3_codec

실험적 SZ3 압축 코덱을 사용할 수 있습니다.

enable_time_time64_type

별칭: allow_experimental_time_time64_type TimeTime64 데이터 타입을 생성할 수 있습니다.

enable_unaligned_array_join

크기가 서로 다른 여러 배열에 대해 ARRAY JOIN을 허용합니다. 이 설정을 활성화하면 배열 크기가 가장 긴 배열에 맞춰 조정됩니다.

enable_url_encoding

URL 엔진 테이블에서 URI 경로의 디코딩/인코딩을 활성화하거나 비활성화할 수 있습니다. 기본적으로 비활성화되어 있습니다.

enable_vertical_final

활성화하면 FINAL 중에 행을 병합하는 대신 행을 삭제된 것으로 표시한 뒤 나중에 필터링하여 중복 행을 제거합니다

enable_writes_to_query_cache

이 설정을 활성화하면 SELECT 쿼리의 결과가 쿼리 캐시에 저장됩니다. Possible values:
  • 0 - 비활성화됨
  • 1 - 활성화됨

enable_zxc_codec

실험적 ZXC 압축 코덱을 사용할 수 있도록 합니다.
마지막 수정일 2026년 8월 27일