max_rows_for_lazy_final
Максимальное количество строк во множестве для отложенной оптимизации FINAL. При превышении этого значения используется обычный FINAL.max_rows_in_distinct
Максимальное количество уникальных строк при использовании DISTINCT.max_rows_in_join
Ограничивает количество строк в правосторонней структуре данных (обычно hash-таблице), используемой при JOIN таблиц. Этот параметр применяется к операциям SELECT … JOIN и к движку таблицы Join. Если запрос содержит несколько JOIN, ClickHouse проверяет этот параметр для каждого промежуточного результата. Это жёсткое ограничение для любогоjoin_algorithm, основанного на hash: при достижении лимита запрос генерирует исключение или прерывается в соответствии с join_overflow_mode. Оно никогда не приводит к сбросу данных JOIN на диск — это решение определяется параметрами max_bytes_before_external_join и max_bytes_ratio_before_external_join.
Исключением является legacy_join_size_limits_trigger_spilling: при его включении та часть JOIN, которая уже выполняется на диске, рассматривает это ограничение как дополнительное условие для сброса данных на диск, а не как жёсткий предел.
Возможные значения:
- Положительное целое число.
0— Неограниченное количество строк.
max_rows_in_set
Максимальное количество строк в наборе данных для условия IN, созданного из подзапроса.max_rows_in_set_to_optimize_join
Максимальный размер множества, используемого для фильтрации соединяемых таблиц по наборам строк друг друга перед JOIN. Возможные значения:- 0 — Отключено.
- Любое положительное целое число.
max_rows_to_group_by
Максимальное количество уникальных ключей, получаемых при агрегации. Эта настройка позволяет ограничить расход памяти при агрегации. Если во время агрегации с GROUP BY создаётся больше указанного количества строк (уникальных ключей GROUP BY), поведение определяется ‘group_by_overflow_mode’, который по умолчанию имеет значениеthrow, но его также можно переключить
в приблизительный режим GROUP BY.
max_rows_to_read
Максимальное количество строк, которое можно прочитать из таблицы при выполнении запроса. Ограничение проверяется для каждого обработанного фрагмента данных, применяется только к наиболее глубокому табличному выражению, а при чтении с удалённого сервера проверяется только на удалённом сервере.max_rows_to_read_leaf
Максимальное количество строк, которое можно прочитать из локальной таблицы на листовом узле при выполнении распределённого запроса. Хотя распределённые запросы могут отправлять несколько подзапросов на каждый сегмент (листовой узел), это ограничение проверяется только на стадии чтения на листовых узлах и не учитывается на стадии слияния результатов на корневом узле. Например, кластер состоит из 2 сегментов, и каждый сегмент содержит таблицу со 100 строками. Распределённый запрос, который должен прочитать все данные из обеих таблиц с настройкойmax_rows_to_read=150, завершится ошибкой, так как всего будет
200 строк. Запрос с max_rows_to_read_leaf=150 выполнится успешно, поскольку листовые узлы
прочитают не более 100 строк.
Ограничение проверяется для каждого обработанного фрагмента данных.
Эта настройка нестабильна при
prefer_localhost_replica=1.max_rows_to_sort
Максимальное количество строк для сортировки. Это позволяет ограничить потребление памяти при сортировке. Если для операции ORDER BY требуется обработать больше записей, чем указано, поведение будет определяться параметромsort_overflow_mode, который по умолчанию имеет значение throw.