force_optimize 관련 설정

force_optimize 관련 설정

프로젝션 최적화와 사용하지 않는 샤드 건너뛰기를 강제하는 설정들을 소개해요. 프로젝션이 의무적으로 사용되도록 하거나, 사용하지 않는 샤드 건너뛰기가 불가능할 때 쿼리 실행을 중단하도록 한답니다. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.

force_optimize_projection

프로젝션 최적화가 활성화되어 있을 때(optimize_use_projections 설정 참조) SELECT 쿼리에서 프로젝션의 의무적 사용을 활성화하거나 비활성화해요.

활성화하면 쿼리를 처리할 수 있는 프로젝션이 테이블 자체보다 더 많은 마크를 읽어야 하더라도 사용되고, 사용할 수 있는 프로젝션이 없으면 쿼리는 PROJECTION_NOT_USED 오류로 실패해요.

가능한 값:

  • 0 — 프로젝션 최적화가 의무적이지 않아요.
  • 1 — 프로젝션 최적화가 의무적이에요.

force_optimize_projection_name

비어 있지 않은 문자열로 설정하면 이 프로젝션이 쿼리에서 한 번 이상 사용되는지 확인해요.

가능한 값: 쿼리에서 사용되는 프로젝션 이름(string).

force_optimize_skip_unused_shards

optimize_skip_unused_shards가 활성화되어 있고 사용하지 않는 샤드 건너뛰기가 불가능할 때 쿼리 실행을 활성화하거나 비활성화해요. 건너뛰기가 불가능하고 이 설정이 활성화되어 있으면 예외가 발생해요.

가능한 값:

  • 0 — 비활성화. ClickHouse가 예외를 던지지 않아요.
  • 1 — 활성화. 테이블에 샤딩 키가 있을 때만 쿼리 실행이 비활성화돼요.
  • 2 — 활성화. 테이블에 샤딩 키가 정의되어 있는지와 무관하게 쿼리 실행이 비활성화돼요.

force_optimize_skip_unused_shards_nesting

force_optimize_skip_unused_shards(따라서 여전히 force_optimize_skip_unused_shards 필요)가 분산 쿼리의 중첩 레벨에 의존하는 방식을 제어해요(다른 Distributed 테이블을 보는 Distributed 테이블이 있는 경우).

가능한 값:

  • 0 — 비활성화. force_optimize_skip_unused_shards가 항상 작동해요.
  • 1 — force_optimize_skip_unused_shards를 첫 번째 레벨에만 활성화해요.
  • 2 — force_optimize_skip_unused_shards를 두 번째 레벨까지 활성화해요.

더 알아보기 (Learn more)