prefer_column_name_to_alias
쿼리 표현식과 절에서 별칭(alias) 대신 원래 컬럼명을 사용할지 여부를 설정합니다. 특히 별칭이 컬럼명과 동일한 경우 중요합니다. 자세한 내용은 Expression Aliases를 참조하십시오. 이 설정을 활성화하면 ClickHouse의 별칭 구문 규칙이 대부분의 다른 데이터베이스 엔진과 더 잘 호환됩니다. 가능한 값:- 0 — 컬럼명이 별칭으로 대체됩니다.
- 1 — 컬럼명이 별칭으로 대체되지 않습니다.
id AS x의 id는 t1과 t3 양쪽 모두의 컬럼이므로, 별칭 t1.id + 10으로 해석됩니다.
예시
활성화 여부에 따른 차이:
쿼리:
prefer_external_sort_block_bytes
외부 정렬 시 최대 블록 바이트를 우선 사용하여 병합 중 메모리 사용량을 줄입니다.prefer_global_in_and_join
IN/JOIN 연산자를 GLOBAL IN/GLOBAL JOIN으로 대체할지 여부를 설정합니다.
가능한 값:
- 0 — 비활성화.
IN/JOIN연산자는GLOBAL IN/GLOBAL JOIN으로 대체되지 않습니다. - 1 — 활성화.
IN/JOIN연산자가GLOBAL IN/GLOBAL JOIN으로 대체됩니다.
SET distributed_product_mode=global은 분산 테이블의 쿼리 동작을 변경할 수 있지만, 로컬 테이블이나 외부 리소스의 테이블에는 적합하지 않습니다. 이런 경우 prefer_global_in_and_join 설정이 유용합니다.
예를 들어, 분산에 적합하지 않은 로컬 테이블이 있는 쿼리 서빙 노드가 있다고 가정하겠습니다. 이런 경우 분산 처리 중에 GLOBAL 키워드(GLOBAL IN/GLOBAL JOIN)를 사용해 해당 데이터를 즉시 분산시켜야 합니다.
prefer_global_in_and_join의 또 다른 사용 사례는 외부 엔진으로 생성된 테이블에 액세스하는 경우입니다. 이 설정을 사용하면 이러한 테이블을 조인할 때 외부 SOURCES에 대한 호출 수를 줄일 수 있으며, 쿼리당 1번만 호출하면 됩니다.
관련 항목:
GLOBAL IN/GLOBAL JOIN사용 방법에 대한 자세한 내용은 Distributed subqueries를 참조하십시오
prefer_localhost_replica
분산 쿼리를 처리할 때 localhost 레플리카를 우선적으로 사용하도록 설정하거나 비활성화합니다. 가능한 값:- 1 — localhost 레플리카가 있으면 ClickHouse는 항상 해당 레플리카로 쿼리를 보냅니다.
- 0 — ClickHouse는 load_balancing 설정에 지정된 로드 밸런싱 전략을 사용합니다.
parallel_replicas_custom_key 없이 max_parallel_replicas를 사용하는 경우에는 이 설정을 비활성화하십시오.
parallel_replicas_custom_key가 설정된 경우에는, 여러 세그먼트에 각각 여러 레플리카가 있는 클러스터에서 사용할 때만 이 설정을 비활성화하십시오.
단일 세그먼트와 여러 레플리카가 있는 클러스터에서 이 설정을 비활성화하면 부정적인 영향이 발생합니다.
prefer_optimize_projection
프로젝션 최적화가 활성화된 경우(optimize_use_projections 설정 참조),SELECT 쿼리에서 테이블보다 프로젝션을 우선적으로 사용하도록 합니다.
활성화하면 테이블 자체보다 더 많은 마크를 읽어야 하더라도 쿼리를 처리할 수 있는 프로젝션을 사용합니다. 이는 force_optimize_projection과 동일하지만, 사용할 수 있는 프로젝션이 없어도 쿼리가 실패하지 않습니다.
가능한 값:
- 0 — 예상 비용을 기준으로 프로젝션을 선택합니다.
- 1 — 예상 비용과 관계없이 사용할 수 있는 프로젝션을 선택합니다.