> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# настройки сеанса merge_tree_*

> Настройки сеанса ClickHouse из автоматически созданной группы merge_tree_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Тип</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>По умолчанию</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Изменяется без перезапуска
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const CloudOnlyBadge = () => {
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Только в ClickHouse Cloud'}
        </div>;
};

Эти настройки доступны в [system.settings](/docs/ru/reference/system-tables/settings) и автоматически сгенерированы на основе [исходного файла](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="merge_tree_coarse_index_granularity">
  ## merge\_tree\_coarse\_index\_granularity
</div>

<SettingsInfoBlock type="UInt64" default_value="8" />

При поиске данных ClickHouse проверяет метки данных в файле индекса. Если ClickHouse обнаруживает, что требуемые ключи находятся в некотором диапазоне, он делит этот диапазон на `merge_tree_coarse_index_granularity` поддиапазонов и рекурсивно ищет требуемые ключи в этих поддиапазонах.

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

* Любое положительное чётное целое число.

<div id="merge_tree_compact_parts_min_granules_to_multibuffer_read">
  ## merge\_tree\_compact\_parts\_min\_granules\_to\_multibuffer\_read
</div>

<CloudOnlyBadge />

<SettingsInfoBlock type="UInt64" default_value="16" />

Действует только в ClickHouse Cloud. Число гранул в stripe компактной части таблиц MergeTree, при котором используется multibuffer reader, поддерживающий параллельное чтение и prefetch. При чтении из remote fs использование multibuffer reader увеличивает число запросов на чтение. Часть читается одним буфером, если она содержит меньше гранул, чем этот порог, и меньше гранул, чем число читаемых столбцов, поскольку в этом случае reader с одним буфером отправляет меньше запросов на чтение, чем multibuffer reader.

<div id="merge_tree_determine_task_size_by_prewhere_columns">
  ## merge\_tree\_determine\_task\_size\_by\_prewhere\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Определяет, использовать ли для определения размера задачи чтения только размер столбцов PREWHERE.

<div id="merge_tree_generic_exclusion_search_max_steps">
  ## merge\_tree\_generic\_exclusion\_search\_max\_steps
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Новая настройка, ограничивающая количество шагов универсального алгоритма поиска с исключением по индексу первичного ключа."}]}]} />

Когда фильтр нельзя представить как один непрерывный диапазон первичного ключа, например если он использует не первый столбец ключа, ClickHouse запускает итеративный универсальный алгоритм поиска с исключением по меткам индекса. Тот же алгоритм используется и для анализа текстового индекса. Эта настройка ограничивает количество шагов (проверок индекса), которое алгоритм выполняет для каждой части данных.

Сначала бюджет расходуется на самые большие оставшиеся диапазоны меток. Когда он исчерпывается, диапазоны, которые не были полностью проанализированы, принимаются целиком, поэтому запрос остается корректным, но может читать больше гранул, чем при поиске без ограничений. Меньший бюджет ускоряет анализ индекса ценой чтения большего объема данных. Это ограничение приблизительное, а не строгое: поиск может превысить его примерно на один раунд разбиения, а если часть уже разделена на множество диапазонов (например, кэшем условий запроса), каждый из них проверяется как минимум один раз независимо от ограничения.

Количество шагов, выполненных поиском для каждой части данных, выводится в сообщениях лога уровня trace для запроса, а profile events `IndexGenericExclusionSearchStepLimitReached` и `TextIndexGenericExclusionSearchStepLimitReached` подсчитывают, сколько раз бюджет был исчерпан.

Значение 0 (по умолчанию) означает неограниченное количество шагов.

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

* 0 — неограниченное количество шагов, либо любое положительное целое число.

<div id="merge_tree_max_bytes_to_use_cache">
  ## merge\_tree\_max\_bytes\_to\_use\_cache
</div>

<SettingsInfoBlock type="UInt64" default_value="2013265920" />

Если в рамках одного запроса ClickHouse нужно прочитать более `merge_tree_max_bytes_to_use_cache` байт, кэш несжатых блоков не используется.

Кэш несжатых блоков хранит данные, извлеченные для запросов. ClickHouse использует этот кэш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кэш от вытеснения запросами, которые читают большие объемы данных. Размер кэша несжатых блоков задается настройкой сервера [uncompressed\_cache\_size](/docs/ru/reference/settings/server-settings/settings#uncompressed_cache_size).

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

* Любое положительное целое число.

<div id="merge_tree_max_rows_to_use_cache">
  ## merge\_tree\_max\_rows\_to\_use\_cache
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

Если ClickHouse нужно прочитать в рамках одного запроса более `merge_tree_max_rows_to_use_cache` строк, кэш несжатых блоков не используется.

Кэш несжатых блоков хранит данные, извлечённые при выполнении запросов. ClickHouse использует этот кэш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кэш от вытеснения запросами, которые читают большие объёмы данных. Размер кэша несжатых блоков задаётся настройкой сервера [uncompressed\_cache\_size](/docs/ru/reference/settings/server-settings/settings#uncompressed_cache_size).

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

* Любое положительное целое число.

<div id="merge_tree_min_bytes_for_concurrent_read">
  ## merge\_tree\_min\_bytes\_for\_concurrent\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="251658240" />

Если количество байтов, которое нужно прочитать из одного файла таблицы на движке [MergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/mergetree), превышает `merge_tree_min_bytes_for_concurrent_read`, ClickHouse пытается читать этот файл параллельно в нескольких потоках.

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

* Положительное целое число.

<div id="merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem">
  ## merge\_tree\_min\_bytes\_for\_concurrent\_read\_for\_remote\_filesystem
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Настройка устарела"}]}]} />

Минимальное количество байтов, которое должно быть прочитано из одного файла, прежде чем движок [MergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/mergetree) сможет распараллелить чтение при чтении из удалённой файловой системы. Мы не рекомендуем использовать эту настройку.

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

* Положительное целое число.

<div id="merge_tree_min_bytes_for_seek">
  ## merge\_tree\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Если расстояние между двумя блоками данных, которые нужно прочитать из одного файла, меньше `merge_tree_min_bytes_for_seek` байт, ClickHouse последовательно считывает участок файла, содержащий оба блока, чтобы избежать дополнительного seek.

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

* Любое положительное целое число.

<div id="merge_tree_min_bytes_per_task_for_remote_reading">
  ## merge\_tree\_min\_bytes\_per\_task\_for\_remote\_reading
</div>

**Псевдонимы**: `filesystem_prefetch_min_bytes_for_single_read_task`

<SettingsInfoBlock type="UInt64" default_value="2097152" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "2097152"},{"label": "Значение унифицировано с `filesystem_prefetch_min_bytes_for_single_read_task`"}]}]} />

Минимальное число байтов, считываемых за одну задачу.

<div id="merge_tree_min_read_task_size">
  ## merge\_tree\_min\_read\_task\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="8" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "8"},{"label": "новая настройка"}]}]} />

Жесткий нижний предел размера задачи (даже если число гранул мало, а количество доступных потоков велико, мы не будем выделять задачи меньшего размера

<div id="merge_tree_min_rows_for_concurrent_read">
  ## merge\_tree\_min\_rows\_for\_concurrent\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="163840" />

Если число строк, считываемых из файла таблицы [MergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/mergetree), превышает `merge_tree_min_rows_for_concurrent_read`, ClickHouse пытается читать этот файл параллельно в несколько потоков.

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

* Положительное целое число.

<div id="merge_tree_min_rows_for_concurrent_read_for_remote_filesystem">
  ## merge\_tree\_min\_rows\_for\_concurrent\_read\_for\_remote\_filesystem
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Настройка устарела"}]}]} />

Минимальное количество строк, которое должно быть прочитано из одного файла, прежде чем движок [MergeTree](/docs/ru/reference/engines/table-engines/mergetree-family/mergetree) сможет распараллелить чтение из удалённой файловой системы. Мы не рекомендуем использовать эту настройку.

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

* Положительное целое число.

<div id="merge_tree_min_rows_for_seek">
  ## merge\_tree\_min\_rows\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Если расстояние между двумя блоками данных, которые нужно прочитать из одного файла, меньше `merge_tree_min_rows_for_seek` строк, то ClickHouse не выполняет `seek` в файле, а читает данные последовательно.

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

* Любое положительное целое число.

<div id="merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability">
  ## merge\_tree\_read\_split\_ranges\_into\_intersecting\_and\_non\_intersecting\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Для тестирования `PartsSplitter` — с указанной вероятностью при каждом чтении из MergeTree разделять диапазоны чтения на пересекающиеся и непересекающиеся."}]}]} />

Для тестирования `PartsSplitter` — с указанной вероятностью при каждом чтении из MergeTree разделять диапазоны чтения на пересекающиеся и непересекающиеся.

<div id="merge_tree_storage_snapshot_sleep_ms">
  ## merge\_tree\_storage\_snapshot\_sleep\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Новая настройка для отладки согласованности снимка хранилища при выполнении запроса"}]}]} />

Добавляет искусственную задержку (в миллисекундах) при создании снимка хранилища для таблиц MergeTree.
Используется только для тестирования и отладки.

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

* 0 - Без задержки (по умолчанию)
* N - Задержка в миллисекундах

<div id="merge_tree_use_const_size_tasks_for_remote_reading">
  ## merge\_tree\_use\_const\_size\_tasks\_for\_remote\_reading
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Использовать ли задачи фиксированного размера для чтения из удалённой таблицы.

<div id="merge_tree_use_deserialization_prefixes_cache">
  ## merge\_tree\_use\_deserialization\_prefixes\_cache
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Новая настройка для управления использованием кэша префиксов десериализации в MergeTree"}]}]} />

Включает кэширование метаданных столбцов из префиксов файлов при чтении с удалённых дисков в MergeTree.

<div id="merge_tree_use_prefixes_deserialization_thread_pool">
  ## merge\_tree\_use\_prefixes\_deserialization\_thread\_pool
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Новая настройка, управляющая использованием пула потоков для параллельной десериализации префиксов в MergeTree"}]}]} />

Включает использование пула потоков для параллельного чтения префиксов в частях Wide в MergeTree. Размер этого пула потоков задаётся настройкой сервера `max_prefixes_deserialization_thread_pool_size`.

<div id="merge_tree_use_v1_object_and_dynamic_serialization">
  ## merge\_tree\_use\_v1\_object\_and\_dynamic\_serialization
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "Добавлена новая версия сериализации V2 для типов JSON и Dynamic"}]}]} />

Если параметр включен, в MergeTree для типов JSON и Dynamic будет использоваться версия сериализации V1 вместо V2. Изменение этого параметра вступает в силу только после перезапуска сервера.
