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 functionsfile/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_columns_cache
Whether to use the columns cache. Accepts 0 or 1. By default, 0 (disabled). The columns cache stores deserialized columns fromMergeTree tables, eliminating repeated decompression and deserialization for hot data. This can significantly reduce latency for repeated queries on the same data. The cache is keyed by table UUID, data part name, column name, and a stripe of consecutive granules of about 65536 rows.
Because entries are keyed by table UUID, the cache is only active for tables in databases that assign UUIDs, such as Atomic, Replicated, and Shared (the default database engine in ClickHouse Cloud); MergeTree tables in legacy Ordinary databases have a nil UUID and silently ignore this setting.
The cache currently applies to wide parts only: data in compact parts is not read from or written to the columns cache, so whether a read is accelerated depends on the part format.
An entry holds a contiguous range of granules of one stripe: a granule enters the cache only after it has been read from its first row to its last, a read is served from the cache granule by granule, and ranges written by different reads are merged, so reads that cut a part into different mark ranges share the entries.
use_concurrency_control
Respect the server’s concurrency control (see theconcurrent_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, withPARTITION BY a and ORDER BY b:
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 reorderinguse_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 withinhedged_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_indexes_refiner_in_read_pools
Apply indexes evaluated at data-read time already inside MergeTree read pools: mark ranges fully filtered out by skip indexes (seeuse_skip_indexes_on_data_read) or by the projection index (see optimize_use_projection_filtering) are dropped before a read task is created for them, instead of being skipped granule by granule during reading.
In the prefetched read pool the dropped ranges are never prefetched, but the task boundaries and the prefetch admission by filesystem_prefetch_max_memory_usage / filesystem_prefetches_limit are still decided before the filtering, so under highly selective filters the surviving tasks may be smaller than the intended task size and the admission may be conservative.
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, the nametoTime refers to the legacy toTime function,
which converts a date with time to a certain fixed date, while preserving the time.
Otherwise, the name refers to the new toTime function,
which converts values of different types into the Time type.
The legacy function is also unconditionally accessible as toTimeWithFixedDate, regardless of this setting.
While this setting is enabled, use CAST(x AS Time) or x::Time to convert to the Time type.
use_lightweight_primary_key_index_analysis
Optimize primary key index analysis forMergeTree 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 pipelineReaderExecutor 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.
- Min thresholds (OR): min_insert_block_size_rows OR min_insert_block_size_bytes is reached.