Skip to main content
These settings are available in system.merge_tree_settings and are autogenerated from ClickHouse source.

min_absolute_delay_to_close

Minimal absolute delay to close, stop serving requests and not return Ok during status check.

min_columns_to_activate_adaptive_write_buffer

Allow to reduce memory usage for tables with lots of columns by using adaptive writer buffers. Compared against the number of streams a wide part writes, which can greatly exceed its number of columns: a Map with many buckets, or a deeply nested Array or Tuple, writes many streams for a single column, and one write buffer is allocated per stream. Possible values:
  • 0 - disabled
  • 1 - always enabled

min_compress_block_size

Minimum size of blocks of uncompressed data required for compression when writing the next mark. You can also specify this setting in the global settings (see min_compress_block_size setting). The value specified when the table is created overrides the global value for this setting.

min_index_granularity_bytes

Min allowed size of data granules in bytes. To provide a safeguard against accidentally creating tables with very low index_granularity_bytes.

min_marks_to_honor_max_concurrent_queries

The minimal number of marks read by the query for applying the max_concurrent_queries setting.
Queries will still be limited by other max_concurrent_queries settings.
Possible values:
  • Positive integer.
  • 0 — Disabled (max_concurrent_queries limit applied to no queries).
Example

min_merge_bytes_to_use_direct_io

The minimum data volume for merge operation that is required for using direct I/O access to the storage disk. When merging data parts, ClickHouse calculates the total storage volume of all the data to be merged. If the volume exceeds min_merge_bytes_to_use_direct_io bytes, ClickHouse reads and writes the data to the storage disk using the direct I/O interface (O_DIRECT option). If min_merge_bytes_to_use_direct_io = 0, then direct I/O is disabled.

min_partition_age_to_force_merge_seconds

Merge parts in a partition if every part in it is older than this value, i.e. the partition no longer receives inserts. Unlike min_age_to_force_merge_seconds with min_age_to_force_merge_on_partition_only, the partition does not have to fit into a single merge: each merge still respects max_bytes_to_merge_at_max_space_in_pool. Works for Simple and StochasticSimple merge selectors. The age compared here is the age of the youngest part in the partition (now - modification_time, minimised over its parts), so the rule arms only once every part has aged past this value. Any new part resets it: an insert, a mutation, and also each merge this setting itself assigns, because the merged part is new. Forcing therefore disarms as soon as a forced merge lands and re-arms only after this value elapses again with no new parts, so a partition that needs several merges is compacted over successive rounds spaced by this interval rather than in one continuous pass. Forcing works exactly like min_age_to_force_merge_seconds: it waives the size-ratio requirement that normally keeps an unbalanced merge from being assigned, and it also waives the min_parts_to_merge_at_once floor, so a forced merge can cover fewer parts than that floor asks for. No other heuristic is turned off: merge_selector_window_size still bounds which parts are examined, and merge_selector_enable_heuristic_to_remove_small_parts_at_right still trims a trailing small part from a selected range of three parts or more. Either of those that a workload needs off must be turned off explicitly through its own setting. Under the Simple and StochasticSimple merge selectors, cannot be combined with min_age_to_force_merge_seconds together with min_age_to_force_merge_on_partition_only. That pair merges a whole partition at once, and only such a merge is marked final, which is what lets a ReplacingMergeTree run CLEANUP; forcing regular merges by partition age would pre-empt it. Use the pair for partitions that fit into a single merge and this setting for the ones that do not. Other selectors ignore this setting, so the combination is accepted with them. Possible values:
  • Positive integer.

min_parts_to_merge_at_once

Minimal amount of data parts which merge selector can pick to merge at once (expert level setting, don’t change if you don’t understand what it is doing). 0 - disabled. Works for Simple and StochasticSimple merge selectors.

min_replicated_logs_to_keep

Keep about this number of last records in ZooKeeper log, even if they are obsolete. It doesn’t affect work of tables: used only to diagnose ZooKeeper log before cleaning. Possible values:
  • Any positive integer.
Last modified on September 12, 2026