merge_tree_coarse_index_granularity
merge_tree_coarse_index_granularity개의 하위 범위로 나눈 다음 그 안에서 필요한 키를 재귀적으로 검색합니다.
가능한 값:
- 모든 양의 짝수 정수.
merge_tree_compact_parts_min_granules_to_multibuffer_read
merge_tree_determine_task_size_by_prewhere_columns
merge_tree_generic_exclusion_search_max_steps
IndexGenericExclusionSearchStepLimitReached 및 TextIndexGenericExclusionSearchStepLimitReached profile events는 예산이 소진된 횟수를 집계합니다.
(기본) 값 0은 단계 수가 무제한임을 의미합니다.
사용 가능한 값:
- 무제한 단계를 의미하는 0 또는 임의의 양의 정수.
merge_tree_max_bytes_to_use_cache
merge_tree_max_bytes_to_use_cache바이트를 초과하여 읽어야 하면 비압축 블록 캐시를 사용하지 않습니다.
비압축 블록 캐시는 쿼리용으로 추출된 데이터를 저장합니다. ClickHouse는 이 캐시를 사용해 반복적인 소규모 쿼리의 응답 속도를 높입니다. 이 설정은 많은 양의 데이터를 읽는 쿼리로 인해 캐시가 불필요하게 소모되는 것을 방지합니다. uncompressed_cache_size 서버 설정은 비압축 블록 캐시의 크기를 정의합니다.
가능한 값:
- 모든 양의 정수.
merge_tree_max_rows_to_use_cache
merge_tree_max_rows_to_use_cache보다 많은 행을 읽어야 하는 경우, 비압축 블록 캐시를 사용하지 않습니다.
비압축 블록 캐시는 쿼리를 위해 추출된 데이터를 저장합니다. ClickHouse는 이 캐시를 사용하여 반복적으로 실행되는 소규모 쿼리의 응답 속도를 높입니다. 이 설정은 많은 양의 데이터를 읽는 쿼리로 인해 캐시가 불필요하게 소모되는 것을 방지합니다. uncompressed_cache_size 서버 설정은 비압축 블록 캐시의 크기를 정의합니다.
가능한 값:
- 모든 양의 정수.
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read를 초과하면, ClickHouse는 여러 스레드를 사용해 이 파일을 동시에 읽으려고 시도합니다.
가능한 값:
- 양의 정수.
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
- 양의 정수.
merge_tree_min_bytes_for_seek
merge_tree_min_bytes_for_seek 바이트보다 작으면, ClickHouse는 추가 seek을 피하기 위해 두 블록이 모두 포함된 파일 범위를 순차적으로 읽습니다.
가능한 값:
- 임의의 양의 정수.
merge_tree_min_bytes_per_read_stream
MergeTree 스캔에서 생성되는 최대 읽기 스트림 수를 제어합니다. 정렬된 읽기, FINAL, 계층형 읽기 및 병렬 레플리카 읽기에는 적용되지 않습니다. 볼륨 기반 상한은 ceil(sqrt(estimated_read_bytes / this_setting))입니다. ClickHouse는 이 상한 적용 전 요청된 스트림 수의 4분의 1 이상이면서 최소 16개의 스트림을 유지하므로, 실제 스트림 수는 min(requested_streams, max(volume_based_cap, 16, floor(requested_streams / 4)))입니다. 이러한 하한은 비용이 estimated_read_bytes에 반영되지 않는 CPU 집약적 표현식과 집계 작업의 후속 병렬성을 유지합니다.
estimated_read_bytes는 인덱스 및 파티션 프루닝 후 남은 마크 범위에서 읽는 컬럼의 압축되지 않은 크기입니다. 스트림별 오버헤드와 스트림당 수행되는 작업량 간의 절충을 위해 압축되지 않은 크기를 사용합니다. 이 작업량은 압축률이 아니라 처리되는 값의 수에 따라 증가하기 때문입니다.
읽기 볼륨을 보수적으로 추정할 수 없는 경우에는 상한이 적용되지 않습니다. 예를 들어 이전 파트에서 새로 추가된 DEFAULT 컬럼을 평가하기 위해 다른 물리적 컬럼이 필요하거나, 선택한 범위가 가변 폭 컬럼의 일부만 읽는 경우입니다.
기본값 64 KB는 T(N) = W/N + F + V·N 비용 모델에서 도출됩니다. 여기서 W는 유효 작업량, F는 고정 파이프라인 오버헤드, V는 스트림별 가변 비용입니다. 최적의 스트림 수는 sqrt(W/V)입니다. 처리량을 통해 W를 바이트로 표현하면 C = throughput · V ≈ 400 MB/s · 0.17 ms ≈ 64 KB가 됩니다. 이 값을 늘리면 스트림 수가 줄어들어 더 보수적으로 동작하며, 줄이면 더 많은 스트림을 허용합니다. 이 최적화를 비활성화하려면 0으로 설정하십시오.
가능한 값:
- 음이 아닌 정수.
merge_tree_min_bytes_per_task_for_remote_reading
filesystem_prefetch_min_bytes_for_single_read_task
작업당 읽을 최소 바이트 수입니다.
merge_tree_min_read_task_size
merge_tree_min_rows_for_concurrent_read
merge_tree_min_rows_for_concurrent_read를 초과하면 ClickHouse는 여러 스레드를 사용해 해당 파일을 동시에 읽으려고 시도합니다.
가능한 값:
- 양의 정수.
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
- 양의 정수.
merge_tree_min_rows_for_seek
merge_tree_min_rows_for_seek행보다 작으면, ClickHouse는 파일에서 읽기 위치를 이동하지 않고 데이터를 순차적으로 읽습니다.
가능한 값:
- 임의의 양의 정수.
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
PartsSplitter 테스트용으로, 지정한 확률에 따라 MergeTree에서 읽을 때마다 읽기 범위를 서로 겹치는 범위와 겹치지 않는 범위로 분할합니다.
merge_tree_storage_snapshot_sleep_ms
- 0 - 지연 없음(기본값)
- N - 밀리초 단위 지연
merge_tree_use_const_size_tasks_for_remote_reading
merge_tree_use_deserialization_prefixes_cache
merge_tree_use_prefixes_deserialization_thread_pool
max_prefixes_deserialization_thread_pool_size로 제어됩니다.