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

use_async_executor_for_materialized_views

Use async and potentially multithreaded execution of materialized view query, can speedup views processing during INSERT, but also consume more memory.

use_cache_for_count_from_files

Enables caching of rows number during count from files in table functions file/s3/url/hdfs/azureBlobStorage. Enabled by default.

use_client_time_zone

Use client timezone for interpreting DateTime string values, instead of adopting server timezone.

use_compact_format_in_distributed_parts_names

Uses compact format for storing blocks for background (distributed_foreground_insert) INSERT into tables with Distributed engine. Possible values:
  • 0 — Uses user[:password]@host:port#default_database directory format.
  • 1 — Uses [shard{shard_index}[_replica{replica_index}]] directory format.
  • with use_compact_format_in_distributed_parts_names=0 changes from cluster definition will not be applied for background INSERT.
  • with use_compact_format_in_distributed_parts_names=1 changing the order of the nodes in the cluster definition, will change the shard_index/replica_index so be aware.

use_concurrency_control

Respect the server’s concurrency control (see the concurrent_threads_soft_limit_num and concurrent_threads_soft_limit_ratio_to_cores global server settings). If disabled, it allows using a larger number of threads even if the server is overloaded (not recommended for normal usage, and needed mostly for tests).

use_constant_folding_in_index_analysis

Substitute partition-level constants into the filter predicate when analyzing per-part primary key and skip indexes. When the partition key appears in the filter together with primary-key or skip-index columns, this lets index analysis fold the partition value separately within each part. It is most useful for disjunctive filters whose branches target different partitions. For example, with PARTITION BY a and ORDER BY b:
For the part in partition a = 1 the condition folds to b >= 1, while for partitions a = 2 and a = 3 it folds to b > 10, so each part is analyzed with the predicate that actually applies to it. Possible values:
  • 0 — Disabled.
  • 1 — Enabled.

use_hash_table_stats_for_join_reordering

Enable using collected hash table statistics for cardinality estimation during join reordering

use_hedged_requests

Enables hedged requests logic for remote queries. It allows to establish many connections with different replicas for query. New connection is enabled in case existent connection(s) with replica(s) were not established within hedged_connection_timeout or no data was received within receive_data_timeout. Query uses the first connection which send non empty progress packet (or data packet, if allow_changing_replica_until_first_data_packet); other connections are cancelled. Queries with max_parallel_replicas > 1 are supported. Enabled by default. Cloud default value: 0.

use_hive_partitioning

When enabled, ClickHouse will detect Hive-style partitioning in path (/name=value/) in file-like table engines File/S3/URL/HDFS/AzureBlobStorage and will allow to use partition columns as virtual columns in the query. These virtual columns will have the same names as in the partitioned path, but starting with _.

use_join_disjunctions_push_down

Enable pushing OR-connected parts of JOIN conditions down to the corresponding input sides (“partial pushdown”). This allows storage engines to filter earlier, which can reduce data read. The optimization is semantics-preserving and is applied only when each top-level OR branch contributes at least one deterministic predicate for the target side.

use_legacy_to_time

When enabled, allows to use legacy toTime function, which converts a date with time to a certain fixed date, while preserving the time. Otherwise, uses a new toTime function, that converts different type of data into the Time type. The old legacy function is also unconditionally accessible as toTimeWithFixedDate.

use_lightweight_primary_key_index_analysis

Optimize primary key index analysis for MergeTree tables with long primary keys. When enabled, the run time of index analysis mainly depends on the complexity of the query’s filter (the key columns it actually uses), not on the length of the primary key — so extending the sorting key has negligible extra overhead on index analysis for queries that filter on only a few of its columns. Possible values:
  • 0 — Disabled. All primary key columns are processed during index analysis.
  • 1 — Enabled.

use_parquet_metadata_cache

If turned on, parquet format may utilize the parquet metadata cache. Possible values:
  • 0 - Disabled
  • 1 - Enabled

use_primary_key

Use the primary key to prune granules during query execution for MergeTree tables. Possible values:
  • 0 — Disabled.
  • 1 — Enabled.

use_reader_executor

Experimental. Route reads through the new pipeline ReaderExecutor instead of the legacy matryoshka of read buffers. Falls back to the legacy path for configurations the executor does not yet support.

use_roaring_bitmap_iceberg_positional_deletes

Use roaring bitmap for iceberg positional deletes.

use_streaming_marks_compression

When loading marks for MergeTree parts, compress them into the in-memory representation one block at a time (streaming) instead of materializing the full plain marks array first. This significantly reduces peak memory usage during marks loading for compact parts with many substreams (e.g. tables with JSON columns and write_marks_for_substreams_in_compact_parts enabled).

use_strict_insert_block_limits

When enabled, strictly enforces both minimum and maximum insert block size limits. A block is emitted when:
  • Min thresholds (AND): Both min_insert_block_size_rows AND min_insert_block_size_bytes are reached.
  • Max thresholds (OR): Either max_insert_block_size_rows OR max_insert_block_size_bytes is reached.
When disabled, a block is emitted when:
  • Min thresholds (OR): min_insert_block_size_rows OR min_insert_block_size_bytes is reached.
Note: If max settings are smaller than min settings, the max limits take precedence and blocks will be emitted before min thresholds are reached. Note: This setting is automatically disabled for async inserts, because async inserts attach per-entry deduplication tokens that are incompatible with block splitting that is needed for enforcement of strict limits. Disabled by default.

use_structure_from_insertion_table_in_table_functions

Use structure from insertion table instead of schema inference from data. Possible values: 0 - disabled, 1 - enabled, 2 - auto

use_uncompressed_cache

Whether to use a cache of uncompressed blocks. Accepts 0 or 1. By default, 0 (disabled). Using the uncompressed cache (only for tables in the MergeTree family) can significantly reduce latency and increase throughput when working with a large number of short queries. Enable this setting for users who send frequent short requests. Also pay attention to the uncompressed_cache_size configuration parameter (only set in the config file) – the size of uncompressed cache blocks. By default, it is 8 GiB. The uncompressed cache is filled in as needed and the least-used data is automatically deleted. For queries that read at least a somewhat large volume of data (one million rows or more), the uncompressed cache is disabled automatically to save space for truly small queries. This means that you can keep the ‘use_uncompressed_cache’ setting always set to 1.

use_with_fill_by_sorting_prefix

Columns preceding WITH FILL columns in ORDER BY clause form sorting prefix. Rows with different values in sorting prefix are filled independently
Last modified on July 24, 2026