Skip to main content
这些设置可在 system.settings 中查看,由 源代码 自动生成。

add_http_cors_header

写入 HTTP CORS 请求头。

analyze_index_with_space_filling_curves

如果表的索引中使用了空间填充曲线,例如 ORDER BY mortonEncode(x, y)ORDER BY hilbertEncode(x, y),并且查询对其参数指定了条件,例如 x >= 10 AND x <= 20 AND y >= 20 AND y <= 30,则会使用空间填充曲线进行索引分析。

analyzer_inline_views

启用后,analyzer 会用定义这些普通 (非物化、非参数化) 视图的子查询替换它们,从而实现跨边界优化,例如谓词下推和列裁剪。

any_join_distinct_right_table_keys

启用 ANY INNER|LEFT JOIN 操作中的旧版 ClickHouse server 行为。
仅当你的用例依赖旧版 JOIN 行为时,才应出于向后兼容目的使用此设置。
启用旧版行为时:
  • t1 ANY LEFT JOIN t2t2 ANY RIGHT JOIN t1 操作的结果不相同,因为 ClickHouse 使用的是从左表到右表键的多对一映射逻辑。
  • ANY INNER JOIN 操作的结果会像 SEMI LEFT JOIN 操作一样,包含左表中的所有行。
禁用旧版行为时:
  • t1 ANY LEFT JOIN t2t2 ANY RIGHT JOIN t1 操作的结果相同,因为 ClickHouse 在 ANY RIGHT JOIN 操作中使用的是可提供一对多键映射的逻辑。
  • ANY INNER JOIN 操作的结果中,每个键在左表和右表中各包含一行。
可选值:
  • 0 — 旧版行为已禁用。
  • 1 — 旧版行为已启用。
另请参见:

archive_adaptive_buffer_max_size_bytes

限制写入归档文件时使用的自适应缓冲区的最大大小 (例如,tar 归档

arrow_flight_request_descriptor_type

用于 Arrow Flight 请求的描述符类型。‘path’ 会将数据集名称作为路径描述符发送。‘command’ 会将 SQL 查询作为命令描述符发送 (Dremio 需要这种方式) 。 可能的值:
  • ‘path’ — 使用 FlightDescriptor::Path (默认值,适用于大多数 Arrow Flight 服务器)
  • ‘command’ — 使用包含 SELECT 查询的 FlightDescriptor::Command (Dremio 需要这种方式)

backup_slow_all_threads_after_retryable_s3_error

当设置为 true 时,只要有任意一个 S3 请求遇到可重试的 S3 错误 (例如 ‘Slow Down’) , 所有向同一备份端点发起 S3 请求的线程都会被放慢。 当设置为 false 时,每个线程都会独立处理 S3 请求的退避,而不受其他线程影响。

cache_warmer_threads

仅在 ClickHouse Cloud 中生效。启用 cache_populated_by_fetch 时,用于将新的数据分区片段预下载到文件系统缓存中的后台线程数。设为 0 可禁用。

calculate_text_stack_trace

在查询执行期间发生异常时,计算文本堆栈跟踪。这是默认设置。该功能需要进行符号查找,因此在执行大量错误查询时,可能会降低模糊测试的速度。一般情况下,不应禁用此选项。

cancel_http_readonly_queries_on_client_close

当客户端在未等待响应的情况下关闭连接时,会取消 HTTP 只读查询 (例如 SELECT) 。 Cloud 默认值:1

checksum_on_read

在读取时验证校验和。此设置默认启用,并且在生产环境中应始终保持启用。不要期望禁用此设置会带来任何好处。它仅可用于实验和基准测试。该设置仅适用于 MergeTree 家族的表。对于其他表引擎,以及通过网络接收数据时,始终都会验证校验和。

connection_pool_max_wait_ms

当连接池已满时,获取连接的等待时间 (以毫秒为单位) 。 可能的取值:
  • 正整数。
  • 0 — 无限等待。

connections_with_failover_max_tries

Distributed 表引擎针对每个副本的最大连接尝试次数。

convert_query_to_cnf

设置为 true 时,SELECT 查询会被转换为合取范式 (CNF) 。在某些情况下,将查询重写为 CNF 可能会执行得更快 (说明请参见这个 Github issue) 。 例如,请注意下面这个 SELECT 查询不会被修改 (这是默认行为) :
结果如下:
我们将 convert_query_to_cnf 设为 true,看看会有哪些变化:
请注意,WHERE 子句虽已重写为 CNF,但结果集完全相同——布尔逻辑并未改变:
可选值:true、false

count_matches_stop_at_empty_match

countMatches 函数中,一旦模式匹配到零长度内容,就停止计数。

cross_to_inner_join_rewrite

如果 WHERE 子句中存在连接表达式,则使用 INNER JOIN 代替逗号/CROSS JOIN。取值:0 - 不重写,1 - 如果可能,则对逗号/CROSS 应用此重写,2 - 强制重写所有逗号 join,cross - 如果可能

data_type_default_nullable

允许将列定义中未显式使用修饰符 NULL or NOT NULL 的数据类型设为 Nullable 可能的值:
  • 1 — 列定义中的数据类型默认设置为 Nullable
  • 0 — 列定义中的数据类型默认不设置为 Nullable

decimal_check_overflow

检查 Decimal 算术/比较操作是否溢出

deduplicate_blocks_in_dependent_materialized_views

启用或禁用对接收来自 Replicated* 表数据的 materialized view 的去重检查。 可能的值:
  • 0 — 禁用。
  • 1 — 启用。
启用后,ClickHouse 会对依赖于 Replicated* 表的 materialized view 中的块执行去重。 当插入操作因故障而重试时,此设置有助于确保 materialized view 中不会包含重复数据。 另请参阅

defer_partition_pruning_after_final

启用时 (默认) ,对于分区键列不属于 sorting key 的表,FINAL 查询会跳过分区裁剪。这是 26.3 引入的、可确保正确性的行为:FINAL 可能需要对主键相同但位于不同分区的行进行去重,而分区裁剪会在不提示的情况下将这些行排除在去重输入之外。 禁用时,即使使用 FINAL 也会应用分区裁剪,从而恢复 26.3 之前的行为。对于在分区列上带有 WHERE 条件的查询,这种方式可能会显著更快,但只有在不同分区中不可能存在主键相同的行时才是正确的——例如事件日志表,其分区列在 insert 时设定,之后永不更改。 此设置仅影响分区键列未包含在 sorting key 中的分区表;对于其他表,始终会应用分区裁剪。 可能的值:
  • 0 — 在 FINAL 之前应用分区裁剪 (26.3 之前的行为,更快,但一般情况下不安全) 。
  • 1 — 将分区裁剪延后到 FINAL 之后 (默认,确保正确性) 。

describe_compact_output

如果为 true,则 DESCRIBE 查询结果中仅包含列名和类型

方言

用于解析查询的方言

discard_query_data

启用后,服务器会跳过向客户端发送查询结果行。查询仍会执行,并在服务器上完整记录,客户端仍会接收其余数据包。 用于影子流量、基准测试和模糊测试。 对次级查询无影响。 仅影响原生 TCP 协议。

distinct_overflow_mode

设置当数据量超过某一限制时的处理方式。 可能的值:
  • throw:抛出异常 (默认) 。
  • break:停止执行查询并返回部分结果,就像源数据已耗尽一样。

do_not_merge_across_partitions_select_final

通过避免跨不同分区合并来提升 FINAL 查询的性能。 启用后,在 SELECT FINAL 查询期间,来自不同分区的 parts 不会被合并到一起,而是只会在各个分区内分别进行合并。这在处理分区表时可以显著提升查询性能。

dynamic_throw_on_type_mismatch

当使用默认实现对 Dynamic 列应用函数时, 该设置用于控制那些实际类型与函数不兼容的行的处理方式:
  • true (默认) — 抛出异常。
  • false — 对这些行返回 NULL

enforce_strict_identifier_format

启用后,将只允许包含字母、数字和下划线的标识符。

engine_url_skip_empty_files

启用或禁用在 URL 引擎表中跳过空文件。 可能的值:
  • 0 — 如果空文件与所请求的格式不兼容,SELECT 会抛出异常。
  • 1 — 对于空文件,SELECT 返回空结果。

exact_rows_before_limit

启用后,ClickHouse 会为 rows_before_limit_at_least 统计信息提供精确值,但代价是必须将 limit 之前的数据全部读取完毕

except_default_mode

设置 EXCEPT 查询的默认模式。可能的值:空字符串、‘ALL’、‘DISTINCT’。如果为空,则未指定模式的查询会抛出异常。

exclude_materialize_skip_indexes_on_insert

指定在 INSERT 期间不构建和存储某些跳过索引。被排除的跳过索引仍会在合并期间构建并存储,或通过显式执行 MATERIALIZE INDEX查询来构建并存储。 如果 materialize_skip_indexes_on_insert 为 false,则此设置无效。 示例:

execute_exists_as_scalar_subquery

将非关联的 EXISTS 子查询按标量子查询执行。与标量子查询一样,会使用缓存,并对结果进行常量折叠。 Cloud 默认值:0

explain_query_plan_default

EXPLAIN PLAN 使用的默认输出格式。 可能的值:
  • pretty (自 26.7 起为默认值) — actionscompactpretty 默认均为 true,生成紧凑、美观且带有 action 注释的计划。
  • legacy — 26.7 之前的输出。
EXPLAIN 语句中显式指定 actionscompactpretty 选项 (例如,EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...) 始终会覆盖此设置。 带有 json = 1distributed = 1EXPLAIN PLAN 无论此设置如何,都会保留 legacy (26.7 之前) 的默认值,除非显式设置了 actionscompactpretty。pretty 输出无法表示 JSON 结果或按分片划分的分布式查询计划,因此这些模式只有以 legacy 形式呈现时才能正确显示。

extract_key_value_pairs_max_pairs_per_row

别名: extract_kvp_max_pairs_per_row extractKeyValuePairs 函数可生成的键值对的最大数量。用于防止占用过多内存。

extremes

是否统计极值 (即查询结果各列中的最小值和最大值) 。接受 0 或 1。默认值为 0 (已禁用) 。 更多信息,请参见“极值”一节。

fallback_to_stale_replicas_for_distributed_queries

如果最新数据不可用,则强制将查询发送到过时的副本。参见 Replication ClickHouse 会从该表的过时副本中选择最合适的一个。 用于从指向复制表的分布式表执行 SELECT 时。 默认值为 1 (已启用) 。

file_like_engine_default_partition_strategy

类文件表引擎的默认分区策略。

filesystem_prefetches_limit

最大预取数量。零表示不受限制。如果你想限制预取数量,更推荐使用设置 filesystem_prefetches_max_memory_usage

final

自动将 FINAL 修饰符应用到查询中的所有表,以及所有可应用 FINAL 的表,包括连接表、子查询中的表和 分布式表。 可能的值:
  • 0 - 已禁用
  • 1 - 已启用
示例:

finalize_projection_parts_synchronously

启用后,projection parts 会在 INSERT 期间同步完成,从而降低峰值内存占用,但代价是 S3 上传并行度会下降。默认情况下,每个 projection 的输出流都会一直保持打开,直到整个 part (包括所有 projections) 都完成,这样可以让 S3 上传相互重叠,但也会使峰值内存随着 projections 的数量成比例增加。此设置仅影响 INSERT 路径;merge 和变更已经会同步完成 projections。

flatten_nested

设置 Nested 列的数据格式。 可能的值:
  • 1 — Nested 列会被展平为单独的数组。
  • 0 — Nested 列保持为单个元组数组。
用法 如果将此设置设为 0,则可以使用任意层级的嵌套。 示例 查询:
结果:
查询:
结果:

fsync_metadata

控制在写入 .sql 文件时是否启用 fsync。默认启用。 如果 server 中有数百万个持续创建和删除的小表,禁用此项是合理的。

functions_h3_default_if_invalid

如果为 false,h3 函数 (例如 h3CellAreaM2) 在输入无效时会抛出异常。如果为 true,则返回 0 或默认值。

geo_distance_returns_float64_on_float64_arguments

如果 geoDistancegreatCircleDistancegreatCircleAngle 这三个函数的四个参数均为 Float64,则返回 Float64,并在内部计算中使用双精度。在此前的 ClickHouse 版本中,这些函数始终返回 Float32。

geotoh3_argument_order

函数 geoToH3 在设置为 lon_lat 时接受 (lon, lat),在设置为 lat_lon 时接受 (lat, lon)。

glob_expansion_max_elements

允许的地址最大数量 (适用于外部存储、表函数等) 。

h3togeo_lon_lat_result_order

如果为 true,函数 h3ToGeo 返回 (lon, lat);否则返回 (lat, lon)。

handshake_timeout_ms

握手过程中,从副本接收 Hello 数据包的超时时间 (毫秒) 。

hedged_connection_timeout_ms

对冲请求中与副本建立连接时的连接超时时间

highlight_max_matches_per_row

设置 highlight 函数中每行高亮匹配的最大数量。可用于在大型文本中高亮高度重复的模式时,防止内存占用过高。 可能的值:
  • 正整数。
搜索向量相似度索引时使用的动态候选列表大小,也称为“ef_search”。

hsts_max_age

HSTS 的过期时长。0 表示禁用 HSTS。

idle_connection_timeout

空闲 TCP 连接在达到指定秒数后自动关闭的超时时间。 可能的值:
  • 正整数 (0 表示立即关闭,即 0 秒后关闭) 。

inject_random_order_for_select_without_order_by

如果启用,会为不带 ORDER BY 子句的 SELECT 查询注入 ‘ORDER BY rand()’。 仅在子查询深度 = 0 时生效。子查询和 INSERT INTO … SELECT 不受影响。 如果顶层结构是 UNION,则会分别为其所有子项独立注入 ‘ORDER BY rand()’。 仅对测试和开发有用 (缺少 ORDER BY 是非确定性查询结果的一个来源) 。

interactive_delay

以微秒为单位的时间间隔,用于检查请求执行是否已取消,并发送 Progress 信息。

intersect_default_mode

设置 INTERSECT 查询的默认 mode。可能的值:空字符串、‘ALL’、‘DISTINCT’。如果为空,未指定 mode 的查询将抛出异常。

least_greatest_legacy_null_behavior

如果启用,当函数 leastgreatest 的任一参数为 NULL 时,将返回 NULL

legacy_column_name_of_tuple_literal

对于大型 Tuple 字面量,在其列名中列出所有元素名称,而不是使用哈希。此设置仅为兼容性而存在。在将集群从低于 21.7 的版本滚动更新到更高版本时,建议将其设为 ‘true’。

limit

设置可从查询结果中获取的最大行数。它会调整由 LIMIT 子句设定的值,因此查询中指定的限制不能超过此设置设定的限制。 可能的值:
  • 0 — 行数不受限制。
  • 正整数。

load_marks_asynchronously

异步加载 MergeTree 标记 Cloud 默认值:1

lock_acquire_timeout

定义锁请求在失败前等待的秒数。 锁超时用于防止对表执行读/写操作时发生死锁。当超时时间到期且锁请求失败时,ClickHouse server 会抛出异常 “Locking attempt timed out! Possible deadlock avoided. Client should retry.”,错误代码为 DEADLOCK_AVOIDED Possible values:
  • 正整数 (单位:秒) 。
  • 0 — 不设置锁超时。

low_priority_query_wait_time_ms

在采用查询优先级机制时 (参见设置 priority) ,低优先级查询会等待高优先级查询完成。此设置指定等待时长。

make_distributed_plan

生成分布式查询计划。

merge_table_max_tables_to_look_for_schema_inference

创建未显式指定 schema 的 Merge 表,或使用 merge 表函数时,会将 schema 推断为匹配表的并集,数量不超过指定值。 如果表的数量更多,则只会基于前面指定数量的表来推断 schema。

mongodb_throw_on_unsupported_query

如果启用,当无法构建 MongoDB 查询时,MongoDB 表会报错。否则,ClickHouse 会读取整个表并在本地处理。allow_experimental_analyzer=0 时,此选项不适用。

multiple_joins_try_to_keep_original_names

在多个 JOIN 重写时,不向顶层表达式列表添加别名

normalize_function_names

将函数名称规范化为其标准名称

offset

设置查询开始返回行之前要跳过的行数。它会调整由 OFFSET 子句设置的偏移量,因此这两个值会相加。 可能的值:
  • 0 — 不跳过任何行。
  • 正整数。
示例 输入表:
查询:
结果:

paimon_target_snapshot_id

用于 Paimon 增量模式的查询级定向快照读取。当 >0 时,读取器只会拉取指定 snapshot_id 的增量, 而不会推进已提交的水位线。 默认值:-1 (禁用)

parallelize_output_from_storages

对存储读取步骤的输出进行并行化。如果条件允许,可在从存储读取后立即并行执行查询处理

partial_result_on_first_cancel

允许查询在被取消后返回部分结果。

per_part_index_stats

记录各个 part 的索引统计信息

poll_interval

在服务器端的查询等待循环中阻塞指定秒数。

polyglot_dialect

polyglot 转译器的源 SQL 方言 (例如 ‘sqlite’、‘mysql’、‘postgresql’、‘snowflake’、‘duckdb’) 。

postgresql_fault_injection_probability

使内部 (用于复制) 的 PostgreSQL 查询失败的近似概率。有效值范围为区间 [0.0f, 1.0f]

predicate_statistics_sample_rate

将谓词选择性统计信息收集到 system.predicate_statistics_log。设置为 N > 0 时,将按查询 ID 对约 1/N 的查询进行采样。0 表示禁用。

prefetch_buffer_size

用于从文件系统读取数据的预取缓冲区最大大小。超过 256 MiB 的值会被限制为 256 MiB,因为读取缓冲区不需要更大。 允许在 DESCRIBE 查询和 toTypeName() 函数中,以带缩进的美观格式输出深层嵌套的类型名称。 示例:

priority

查询的priority。1 表示最高priority,值越大priority越低;0 表示不使用priority。

push_external_roles_in_interserver_queries

启用在执行查询时将用户角色从发起节点推送到其他节点。

query_metric_log_interval

用于收集单个查询的 query_metric_log 的时间间隔 (以毫秒为单位) 。 如果设置为任意负值,则会采用 query_metric_log 设置 中的 collect_interval_milliseconds 值;如果未设置,则默认使用 1000。 要禁用单个查询的收集,请将 query_metric_log_interval 设置为 0。 默认值:-1

queue_max_wait_ms

如果并发请求数超过最大值,请求在队列中的等待时间。

rabbitmq_max_wait_ms

重试前,从 RabbitMQ 读取的等待时间。

readonly

0 - 无只读限制。1 - 仅允许读取请求,以及修改明确允许更改的设置。2 - 仅允许读取请求,以及修改除 readonly 设置外的其他设置。

recursive_cte_max_steps_in_type_inference

在递归 CTE 中推断列类型时允许的最大迭代次数。列类型的确定方式是:在 UNION ALL 的非递归部分和递归部分之间反复应用 getLeastSupertype,直到结果收敛。设为 0 可禁用类型拓宽,仅使用非递归部分的类型。

regexp_max_matches_per_row

设置单个正则表达式在每行中的最大匹配次数。使用 extractAllGroupsHorizontal 函数中的贪婪正则表达式时,可用此设置防止内存占用过高。 可能的值:
  • 正整数。

reject_expensive_hyperscan_regexps

拒绝那些在使用 hyperscan 进行求值时可能导致较高开销的模式 (由于 NFA 状态爆炸)

remerge_sort_lowered_memory_bytes_ratio

如果 remerge 后内存使用量未按该比率降低,则会禁用 remerge。

remote_read_min_bytes_for_seek

远程读取 (URL、S3) 执行寻道而非以 ignore 方式读取时所需的最小字节数。

rename_files_after_processing

  • 类型: String
  • 默认值: 空字符串
此设置用于为由 file 表函数处理的文件指定重命名模式。设置此选项后,file 表函数读取的所有文件都会在处理成功后,按照包含占位符的指定模式重命名。

占位符

  • %a — 原始文件的完整文件名 (例如 "sample.csv") 。
  • %f — 不含扩展名的原始文件名 (例如 "sample") 。
  • %e — 带点号的原始文件扩展名 (例如 ".csv") 。
  • %t — 时间戳 (以微秒为单位) 。
  • %% — 百分号 ("%") 。

示例

  • 选项:--rename_files_after_processing="processed_%f_%t%e"
  • 查询:SELECT * FROM file('sample.csv')
如果 sample.csv 读取成功,文件将重命名为 processed_sample_1683473210851438.csv

replication_wait_for_inactive_replica_timeout

指定等待非活动副本执行 ALTEROPTIMIZETRUNCATE 查询的时间 (以秒为单位) 。 可能的值:
  • 0 — 不等待。
  • 负整数 — 无限期等待。
  • 正整数 — 要等待的秒数。

reserve_memory

用于工作负载调度。该设置指定在单台服务器上运行查询时预留的最小 RAM 量。预留通过 WORKLOAD 层级,基于查询设置 workload 的值进行。 如果该工作负载没有足够的可用内存,查询将无法启动,并会保持在待处理状态,直到能够满足预留要求。 值为 0 表示不预留内存。 仅当创建了 MEMORY RESERVATION 资源时,此设置才会生效。

restore_replicated_merge_tree_to_shared_merge_tree

在 RESTORE 时,将表引擎从 ReplicatedMergeTree 替换为 SharedMergeTree。 Cloud 默认值:1

result_overflow_mode

设置当结果量超过某个限制时的处理方式。 可能的值:
  • throw:抛出异常 (默认) 。
  • break:停止执行查询并返回部分结果,就像 源数据已经耗尽一样。
使用 ‘break’ 与使用 LIMIT 类似。Break 只会在 块级别中断执行。这意味着返回的行数会大于 max_result_rows,且是 max_block_size 的倍数,并且取决于 max_threads 示例
Query
Result

rows_before_aggregation

启用后,ClickHouse 将提供 rows_before_aggregation 统计信息的精确值,表示聚合前读取的行

secondary_indices_enable_bulk_filtering

为索引启用批量过滤算法。通常它的效果会更好,但我们保留此设置以便进行兼容性控制。

select_sequential_consistency

此设置在 SharedMergeTree 和 ReplicatedMergeTree 中的行为不同。有关 select_sequential_consistency 在 SharedMergeTree 中的行为的更多信息,请参阅 SharedMergeTree 一致性
SELECT 查询启用或禁用顺序一致性。要求禁用 insert_quorum_parallel (默认情况下启用) 。 Possible values:
  • 0 — 禁用。
  • 1 — 启用。
Usage 启用顺序一致性后,ClickHouse 只允许客户端在包含此前所有使用 insert_quorum 执行的 INSERT 查询数据的副本上执行 SELECT 查询。如果客户端访问的是不完整的副本,ClickHouse 将抛出异常。SELECT 查询不会包含尚未写入到法定数量副本中的数据。 启用 insert_quorum_parallel (默认值) 时,select_sequential_consistency 将不起作用。这是因为并行 INSERT 查询可能会写入不同的法定数量副本集合,因此无法保证某一个副本已接收到所有写入。 See also:

session_timezone

设置当前 session 或查询的隐式时区。 隐式时区是应用于未显式指定时区的 DateTime/DateTime64 类型值的时区。 此设置的优先次序高于全局配置的 (server 级别) 隐式时区。 值为 ” (空字符串) 表示当前 session 或查询的隐式时区与server 时区相同。 你可以使用函数 timeZone()serverTimeZone() 获取会话时区和 server 时区。 可能的值:
  • system.time_zones 中的任意时区名称,例如 Europe/BerlinUTCZulu
示例:
将会话时区 ‘America/Denver’ 赋给内部未显式指定时区的日期时间:
并非所有解析 DateTime/DateTime64 的函数都会遵循 session_timezone。这可能会导致一些难以察觉的错误。 请参见下面的示例和说明。
这是由于解析流程不同所致:
  • 第一个 SELECT 查询中,未显式指定 time zone 的 toDateTime() 会遵循 session_timezone 设置和全局 time zone。
  • 在第二个查询中,日期时间是从 String 解析而来,并继承现有列 d 的类型和 time zone。因此,session_timezone 设置和全局 time zone 都不会生效。
另请参见

set_overflow_mode

设置当数据量超过某个限制时的处理方式。 可能的值:
  • throw:抛出异常 (默认值) 。
  • break:停止执行查询并返回部分结果,就像 源数据已经耗尽一样。

single_join_prefer_left_table

对于单个 JOIN,标识符存在歧义时优先使用左表

skip_redundant_aliases_in_udf

为简化用户自定义函数的使用,冗余别名不会在其中使用,而是会被替换。 可能的值:
  • 1 — 在 UDFs 中跳过 (替换) 这些别名。
  • 0 — 在 UDFs 中不跳过 (替换) 这些别名。
示例 启用和禁用的区别: 查询:
结果:
查询:
结果:

sleep_after_receiving_query_ms

TCPHandler 收到查询后休眠的时长

snappy_mode

控制在通用文件 I/O 路径 (如 fileurl) 中,snappy 压缩所使用的传输格式。HTTP Content-Encoding: snappy 始终使用 framing 格式,并会忽略此设置。 请注意,单次调用 snappy::Compress 生成的原始 snappy 块格式 (例如由 SnappyBasicReadBuffer 处理的 Prometheus 远程协议载荷) 属于另一种特定于协议的传输格式,不受此设置控制。 可能的值:
  • basic — Hadoop snappy 块格式。兼容 Hadoop 读写的文件。支持读取和写入。
  • framed — Snappy framing 格式,即 Google 定义的标准流式格式。支持读取和写入。

sort_overflow_mode

设置在排序前接收的行数超过某个限制时的处理方式。 可能的值:
  • throw:抛出异常。
  • break:停止执行查询并返回部分结果。

splitby_max_substrings_includes_remaining_string

控制带有参数 max_substrings > 0 的 splitBy*() 函数是否会将剩余字符串包含在结果数组的最后一个元素中。 可能的值:
  • 0 - 剩余字符串不会包含在结果数组的最后一个元素中。
  • 1 - 剩余字符串会包含在结果数组的最后一个元素中。这是 Spark 的 split() 函数和 Python 的 string.split() 方法的行为。

stop_refreshable_materialized_views_on_startup

在服务器启动时,阻止调度可刷新materialized view,效果等同于执行 SYSTEM STOP VIEWS。之后,你可以手动使用 SYSTEM START VIEWSSYSTEM START VIEW <name> 启动它们。此设置也适用于新创建的视图。对不可刷新的 materialized view 无效。

tcp_keep_alive_timeout

连接在 TCP 开始发送 keepalive 探测之前,需保持空闲的时间 (以秒为单位)

temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds

为文件系统缓存中的临时数据预留空间时,锁定缓存的等待时间

throw_if_no_data_to_insert

允许或禁止空 INSERT,默认启用 (空插入时会抛出错误) 。仅适用于通过 ClickHouse 客户端gRPC 接口 执行的 INSERT。

timeout_before_checking_execution_speed

在指定的秒数过去后,检查执行速度是否过慢 (不低于 min_execution_speed) 。

transfer_overflow_mode

设置当数据量超过某个限制时的处理方式。 可能的值:
  • throw:抛出异常 (默认) 。
  • break:停止执行查询并返回部分结果,仿佛 源数据已经耗尽。

transform_null_in

IN 运算符启用 NULL 值之间的相等比较。 默认情况下,NULL 值不能参与比较,因为 NULL 表示未定义的值。因此,比较 expr = NULL 必须始终返回 false。启用此设置后,对于 IN 运算符,NULL = NULL 会返回 true 可能的值:
  • 0 — IN 运算符中对 NULL 值的比较返回 false
  • 1 — IN 运算符中对 NULL 值的比较返回 true
示例 null_in 表为例:
查询:
结果:
查询:
结果:
另请参见

traverse_shadow_remote_data_paths

查询 system.remote_data_paths 时,除实际表数据外,也遍历冻结数据 (shadow 目录)

union_default_mode

设置用于合并 SELECT 查询结果的模式。只有在使用 UNION 且未显式指定 UNION ALLUNION DISTINCT 时,此设置才会生效。 可能的值:
  • 'DISTINCT' — ClickHouse 在合并查询结果时会去除重复行。
  • 'ALL' — ClickHouse 在合并查询结果时会保留所有行,包括重复行。
  • '' — 与 UNION 一起使用时,ClickHouse 会引发异常。
示例请参见 UNION

unique_key_max_encoded_size

单个 UNIQUE KEY 行的保序二进制编码的最大大小 (以字节为单位) 。

unknown_packet_in_send_data

在第 N 个数据包处发送未知数据包,而不是发送数据

variant_throw_on_type_mismatch

当使用默认实现对 Variant 列应用函数时, 控制实际类型与该函数不兼容的行应如何处理:
  • true (默认) — 抛出异常。
  • false — 改为对这些行返回 NULL

wait_changes_become_visible_after_commit_mode

等待已提交的更改在最新快照中变为可见

workload

访问资源时使用的 workload 名称

write_full_path_in_iceberg_metadata

将完整路径 (包括 S3://) 写入 Iceberg 元数据文件。

zstd_window_log_max

允许选择 ZSTD 的最大 window log (不适用于 MergeTree 家族)
最后修改于 2026年7月24日