Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Настройки таблиц семейства MergeTree map_buckets_*

Эти настройки доступны в system.merge_tree_settings и автоматически генерируются из исходного кода ClickHouse.

map_buckets_coefficient

Тип
Float
По умолчанию
1
История версий
ВерсияЗначение по умолчаниюКомментарий
26.31Добавлена настройка для управления коэффициентом, используемым в стратегиях `sqrt` и `linear` для вычисления количества бакетов при сериализации `Map` `with_buckets`

Коэффициент, используемый в стратегиях sqrt и linear настройки map_buckets_strategy для вычисления количества бакетов на основе среднего размера map. Для стратегии sqrt: round(map_buckets_coefficient * sqrt(avg_map_size)). Для стратегии linear: round(map_buckets_coefficient * avg_map_size). Игнорируется, если map_buckets_strategy имеет значение constant.

map_buckets_min_avg_size

Тип
UInt64
По умолчанию
32
История версий
ВерсияЗначение по умолчаниюКомментарий
26.332Добавлена настройка для задания минимального среднего размера Map (количества ключей на строку), необходимого для применения сериализации `Map` `with_buckets`

Минимальный средний размер Map (количество ключей на строку), необходимый для применения сериализации Map with_buckets. Если средний размер Map меньше этого значения, используется один бакет независимо от других настроек бакетов. Значение 0 отключает этот порог и всегда применяет стратегию разбиения по бакетам. Эта настройка позволяет избежать накладных расходов сериализации Map по бакетам для небольших Map, где выигрыш незначителен.

map_buckets_strategy

Тип
MergeTreeMapBucketsStrategy
По умолчанию
sqrt
История версий
ВерсияЗначение по умолчаниюКомментарий
26.3sqrtДобавлена настройка, управляющая стратегией выбора количества бакетов для сериализации `Map` `with_buckets`

Управляет стратегией выбора количества бакетов в сериализации with_buckets типа Map на основе среднего размера map.

Возможные значения:

  • constant — Всегда использовать max_buckets_in_map как количество бакетов, независимо от среднего размера map.
  • sqrt — Использовать round(map_buckets_coefficient * sqrt(avg_map_size)) как количество бакетов, ограниченное диапазоном [1, max_buckets_in_map].
  • linear — Использовать round(map_buckets_coefficient * avg_map_size) как количество бакетов, ограниченное диапазоном [1, max_buckets_in_map].
Navigation