이러한 설정은 system.settings에서 확인할 수 있으며, 원본을 기반으로 자동 생성됩니다.
read_in_order_two_level_merge_threshold
유형
UInt64
기본값
100
프라이머리 키 순서대로 멀티스레드 읽기를 수행할 때 사전 병합 단계를 실행하기 위해 읽어야 하는 최소 파트 수입니다.
read_in_order_use_buffering
유형
Bool
기본값
1
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 24.7 | 1 | 프라이머리 키 순서로 읽을 때 병합 전에 버퍼링 사용 |
프라이머리 키 순서로 읽을 때 병합 전에 버퍼링을 사용합니다. 이렇게 하면 쿼리 실행의 병렬성이 증가합니
read_in_order_use_virtual_row
유형
Bool
기본값
1
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 26.8 | 1 | 기본적으로 가상 행 최적화를 활성화합니다. 많은 파트에서 프라이머리 키 순서로 읽을 때 희소 인덱스의 기본 키 값을 사용하여 `MergingSortedTransform`이 소스의 우선순위를 재조정할 수 있습니다. 따라서 쿼리와 관련 없는 파트는 읽지 않으며, 읽기를 병렬로 유지하기 위해 최대 `max_threads`개 파트로 제한되는 사전 읽기 윈도우를 사용합니다. 이로 인해 피크 메모리 사용량이 크게 줄어듭니다(https://github.com/ClickHouse/ClickHouse/issues/52624 참조). |
| 24.11 | 0 | 프라이머리 키 또는 그 단조 함수 순서로 읽을 때 가상 행을 사용합니다. 여러 파트에 걸쳐 검색할 때 관련 파트만 처리하므로 유용합니다. |
프라이머리 키 또는 그 단조 함수 순서로 읽을 때 가상 행을 사용합니다. 여러 파트에 걸쳐 검색할 때 실제로 결과에 기여할 수 있는 파트만 읽으며, 읽기를 병렬로 유지하기 위해 최대 max_threads개 파트로 제한되는 사전 읽기 윈도우를 사용합니다.
read_in_order_use_virtual_row_per_block
유형
Bool
기본값
0
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 26.4 | 0 | read-in-order 중 각 블록 뒤에 가상 행을 내보내 MergingSortedTransform에서 소스 우선순위를 더 자주 재조정할 수 있도록 합니다. |
read_in_order_use_virtual_row와 함께 활성화하면 각 파트의 시작 시점뿐 아니라 각 블록을 읽은 후에도 가상 행을 내보냅니다.
이렇게 하면 MergingSortedTransform가 소스 우선순위를 더 자주 재조정할 수 있으므로, 다운스트림 filters가 많은 행을 걸러내고 데이터가 파트 간에 불균등하게 분산되어 있을 때 유용합니다.
이 설정을 활성화하면 읽기 시 read_in_order_use_buffering 최적화와 사전 병합(read_in_order_two_level_merge_threshold)이 비활성화됩니다.