Эти настройки доступны в system.settings и автоматически сгенерированы на основе исходного файла.
merge_tree_coarse_index_granularity
При поиске данных ClickHouse проверяет метки данных в файле индекса. Если ClickHouse обнаруживает, что требуемые ключи находятся в некотором диапазоне, он делит этот диапазон на merge_tree_coarse_index_granularity поддиапазонов и рекурсивно ищет требуемые ключи в этих поддиапазонах.
Возможные значения:
- Любое положительное чётное целое число.
merge_tree_compact_parts_min_granules_to_multibuffer_read
Действует только в ClickHouse Cloud. Число гранул в stripe компактной части таблиц MergeTree, при котором используется multibuffer reader, поддерживающий параллельное чтение и prefetch. При чтении из remote fs использование multibuffer reader увеличивает число запросов на чтение. Часть читается одним буфером, если она содержит меньше гранул, чем этот порог, и меньше гранул, чем число читаемых столбцов, поскольку в этом случае reader с одним буфером отправляет меньше запросов на чтение, чем multibuffer reader.
merge_tree_determine_task_size_by_prewhere_columns
Определяет, использовать ли для определения размера задачи чтения только размер столбцов PREWHERE.
merge_tree_generic_exclusion_search_max_steps
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 26.7 | 0 | Новая настройка, ограничивающая количество шагов универсального алгоритма поиска с исключением по индексу первичного ключа. |
Когда фильтр нельзя представить как один непрерывный диапазон первичного ключа, например если он использует не первый столбец ключа, ClickHouse запускает итеративный универсальный алгоритм поиска с исключением по меткам индекса. Тот же алгоритм используется и для анализа текстового индекса. Эта настройка ограничивает количество шагов (проверок индекса), которое алгоритм выполняет для каждой части данных.
Сначала бюджет расходуется на самые большие оставшиеся диапазоны меток. Когда он исчерпывается, диапазоны, которые не были полностью проанализированы, принимаются целиком, поэтому запрос остается корректным, но может читать больше гранул, чем при поиске без ограничений. Меньший бюджет ускоряет анализ индекса ценой чтения большего объема данных. Это ограничение приблизительное, а не строгое: поиск может превысить его примерно на один раунд разбиения, а если часть уже разделена на множество диапазонов (например, кэшем условий запроса), каждый из них проверяется как минимум один раз независимо от ограничения.
Количество шагов, выполненных поиском для каждой части данных, выводится в сообщениях лога уровня trace для запроса, а profile events IndexGenericExclusionSearchStepLimitReached и TextIndexGenericExclusionSearchStepLimitReached подсчитывают, сколько раз бюджет был исчерпан.
Значение 0 (по умолчанию) означает неограниченное количество шагов.
Возможные значения:
- 0 — неограниченное количество шагов, либо любое положительное целое число.
merge_tree_max_bytes_to_use_cache
Если в рамках одного запроса ClickHouse нужно прочитать более merge_tree_max_bytes_to_use_cache байт, кэш несжатых блоков не используется.
Кэш несжатых блоков хранит данные, извлеченные для запросов. ClickHouse использует этот кэш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кэш от вытеснения запросами, которые читают большие объемы данных. Размер кэша несжатых блоков задается настройкой сервера uncompressed_cache_size.
Возможные значения:
- Любое положительное целое число.
merge_tree_max_rows_to_use_cache
Если ClickHouse нужно прочитать в рамках одного запроса более merge_tree_max_rows_to_use_cache строк, кэш несжатых блоков не используется.
Кэш несжатых блоков хранит данные, извлечённые при выполнении запросов. ClickHouse использует этот кэш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кэш от вытеснения запросами, которые читают большие объёмы данных. Размер кэша несжатых блоков задаётся настройкой сервера uncompressed_cache_size.
Возможные значения:
- Любое положительное целое число.
merge_tree_min_bytes_for_concurrent_read
Если количество байтов, которое нужно прочитать из одного файла таблицы на движке MergeTree, превышает merge_tree_min_bytes_for_concurrent_read, ClickHouse пытается читать этот файл параллельно в нескольких потоках.
Возможное значение:
- Положительное целое число.
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 24.10 | 0 | Настройка устарела |
Минимальное количество байтов, которое должно быть прочитано из одного файла, прежде чем движок MergeTree сможет распараллелить чтение при чтении из удалённой файловой системы. Мы не рекомендуем использовать эту настройку.
Возможные значения:
- Положительное целое число.
merge_tree_min_bytes_for_seek
Если расстояние между двумя блоками данных, которые нужно прочитать из одного файла, меньше merge_tree_min_bytes_for_seek байт, ClickHouse последовательно считывает участок файла, содержащий оба блока, чтобы избежать дополнительного seek.
Возможные значения:
- Любое положительное целое число.
merge_tree_min_bytes_per_read_stream
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 26.8 | 65536 | Новая настройка, ограничивающая число потоков при обычном локальном неупорядоченном сканировании узких столбцов `MergeTree` с помощью модели затрат sqrt; она снижает накладные расходы на поток на машинах с большим числом ядер. previous_value=0 (отключено), поэтому `compatibility` с версиями до 26.8 восстанавливает прежнее число потоков. |
Накладные расходы на поток, выраженные в байтовом эквиваленте. Управляет максимальным числом потоков чтения, создаваемых для обычного локального неупорядоченного сканирования MergeTree. Упорядоченные чтения, чтения с FINAL, многоуровневые чтения и чтения с параллельных реплик не изменяются. Ограничение по объёму вычисляется как ceil(sqrt(estimated_read_bytes / this_setting)). ClickHouse также сохраняет не менее 16 потоков и не менее четверти числа потоков, запрошенных до применения этого ограничения, поэтому фактическое число потоков равно min(requested_streams, max(volume_based_cap, 16, floor(requested_streams / 4))). Эти нижние границы сохраняют параллелизм на последующих этапах для выражений и агрегаций с высокой нагрузкой на CPU, стоимость которых не отражается в estimated_read_bytes.
estimated_read_bytes — это несжатый размер считываемых столбцов в диапазонах меток, оставшихся после отсечения по индексу и партициям. Используется несжатый размер, поскольку накладные расходы на поток сопоставляются с объёмом работы, выполняемой каждым потоком, который зависит от количества обработанных значений, а не от степени их сжатия.
Ограничение не применяется, если объём чтения нельзя достоверно оценить, например когда для вычисления недавно добавленного столбца DEFAULT старой части требуются другие физические столбцы или когда выбранный диапазон считывает только часть столбца переменной ширины.
Значение по умолчанию 64 КБ получено из модели затрат 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
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 24.8 | 2097152 | Значение унифицировано с `filesystem_prefetch_min_bytes_for_single_read_task` |
Минимальное число байтов, считываемых за одну задачу.
merge_tree_min_read_task_size
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 24.10 | 8 | новая настройка |
Жесткий нижний предел размера задачи (даже если число гранул мало, а количество доступных потоков велико, мы не будем выделять задачи меньшего размера
merge_tree_min_rows_for_concurrent_read
Если число строк, считываемых из файла таблицы MergeTree, превышает merge_tree_min_rows_for_concurrent_read, ClickHouse пытается читать этот файл параллельно в несколько потоков.
Возможные значения:
- Положительное целое число.
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 24.10 | 0 | Настройка устарела |
Минимальное количество строк, которое должно быть прочитано из одного файла, прежде чем движок MergeTree сможет распараллелить чтение из удалённой файловой системы. Мы не рекомендуем использовать эту настройку.
Возможные значения:
- Положительное целое число.
merge_tree_min_rows_for_seek
Если расстояние между двумя блоками данных, которые нужно прочитать из одного файла, меньше merge_tree_min_rows_for_seek строк, то ClickHouse не выполняет seek в файле, а читает данные последовательно.
Возможные значения:
- Любое положительное целое число.
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 26.8 | 1 | Новая настройка для управления предварительным чтением под-потоков общих данных JSON, которые считываются с seek к метке в частях Wide. |
Включает предварительное чтение под-потоков общих данных JSON в частях Wide, которые считываются с seek к метке. Такое предварительное чтение начинается с начала гранулы, тогда как под-поток обычно считывается не с этой позиции, поэтому оно может оказаться бесполезным. Отключите настройку, чтобы пропустить эти операции предварительного чтения.
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 24.3 | 0 | Для тестирования `PartsSplitter` — с указанной вероятностью при каждом чтении из MergeTree разделять диапазоны чтения на пересекающиеся и непересекающиеся. |
Для тестирования PartsSplitter — с указанной вероятностью при каждом чтении из MergeTree разделять диапазоны чтения на пересекающиеся и непересекающиеся.
merge_tree_storage_snapshot_sleep_ms
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.6 | 0 | Новая настройка для отладки согласованности снимка хранилища при выполнении запроса |
Добавляет искусственную задержку (в миллисекундах) при создании снимка хранилища для таблиц MergeTree. Используется только для тестирования и отладки.
Возможные значения:
- 0 - Без задержки (по умолчанию)
- N - Задержка в миллисекундах
merge_tree_use_const_size_tasks_for_remote_reading
Использовать ли задачи фиксированного размера для чтения из удалённой таблицы.
merge_tree_use_deserialization_prefixes_cache
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.2 | 1 | Новая настройка для управления использованием кэша префиксов десериализации в MergeTree |
Включает кэширование метаданных столбцов из префиксов файлов при чтении с удалённых дисков в MergeTree.
merge_tree_use_prefixes_deserialization_thread_pool
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 25.2 | 1 | Новая настройка, управляющая использованием пула потоков для параллельной десериализации префиксов в MergeTree |
Включает использование пула потоков для параллельного чтения префиксов в частях Wide в MergeTree. Размер этого пула потоков задаётся настройкой сервера max_prefixes_deserialization_thread_pool_size.
merge_tree_use_v1_object_and_dynamic_serialization
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 24.11 | 0 | Добавлена новая версия сериализации V2 для типов JSON и Dynamic |
Если параметр включен, в MergeTree для типов JSON и Dynamic будет использоваться версия сериализации V1 вместо V2. Изменение этого параметра вступает в силу только после перезапуска сервера.