use_adaptive_write_buffer_for_dynamic_subcolumns
use_async_block_ids_cache
use_compact_variant_discriminators_serialization
use_const_adaptive_granularity
index_granularity_bytes가 0이 아닌 경우)은
그래뉼의 바이트 크기를 일정하게 유지하므로 행 수는 달라집니다. 기록되는 각
block에서 그래뉼당 행 수는 index_granularity_bytes를 해당 block의 평균 행 크기로 나눈 값이며,
index_granularity를 초과하지 않습니다. 그래뉼마다 행 수가 다르므로 파트의 모든 그래뉼에 대한 행 수를
각각 8바이트씩 메모리에 저장해야 하며, 대규모 테이블에서는 총 수십 기가바이트에 이를 수 있습니다.
상수 적응형 세분화 수준(이 설정)을 활성화하면 그래뉼당 행 수가 일정하게 유지되고,
바이트 크기는 달라집니다. 이 행 수는 기록 중인 파트의 평균 행 크기를 기준으로 한 번 계산되며,
파트에는 그래뉼마다 값 하나를 저장하는 대신 이 단일 값만 저장됩니다. 모든 그래뉼에 동일한 수의 행이
포함되므로 그래뉼별 행 수를 추가로 저장할 필요가 없습니다.
현재 이러한 값에 사용되는 메모리 양은
system.asynchronous_metrics의 TotalIndexGranularityBytesInMemory 메트릭으로 보고되며,
파트별 값은 system.parts.index_granularity_bytes_in_memory에서 확인할 수 있습니다.
이 설정은 변경 후 기록되는 파트에만 적용됩니다.
기존 파트에 적용하려면
ALTER TABLE … REWRITE PARTS를 사용하십시오. Compact 파트는 항상 적응형 세분화 수준을 사용합니다.