optimize_aggregators_of_group_by_keys
optimize_append_index
false。
可能的值:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- 正整数 - 名称的最大长度,
- 0 — 始终,
- 负整数 - 从不。
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage。
可能的值:
- 0 — 禁用优化。
- 1 — 启用优化。
optimize_dictget_tuple_element
tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) 改写为 dictGet('dict', 'b', key),以避免拉取不必要的字典属性。支持按位置 (.1、.2、…) 和按名称 (.b) 访问,也适用于 dictGetOrDefault,前提是默认参数为常量 Tuple 或由常量组成的 tuple(...)。
optimize_distinct_in_order
optimize_distributed_group_by_sharding_key
GROUP BY sharding_key 查询 (这将降低该查询在发起服务器上的内存使用) 。
支持以下类型的查询 (以及它们的任意组合) :
SELECT DISTINCT [..., ]sharding_key[, ...] FROM distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — 禁用。
- 1 — 启用。
目前它要求启用
optimize_skip_unused_shards (原因是未来某一天它可能会默认启用,而它只有在数据是通过 Distributed 表插入时才能正确工作,也就是说,数据必须按 sharding_key 分布) 。optimize_dry_run_check_part
OPTIMIZE ... DRY RUN 会使用 checkDataPart 对生成的合并后分片进行校验。如果校验失败,则会抛出异常。
optimize_empty_string_comparisons
col 为 String 或 FixedString 类型时,才会将 col = '' 或 '' = col 之类的表达式转换为 empty(col),并将 col != '' 或 '' != col 转换为 notEmpty(col)。
optimize_extract_common_expressions
(A AND B) OR (A AND C) 这样的逻辑表达式可以改写为 A AND (B OR C),这可能有助于利用:
- 简单筛选表达式中的索引
- CROSS 到 INNER JOIN 的优化
optimize_functions_to_subcolumns
- length 优化为读取 size0 子列。
- empty 优化为读取 size0 子列。
- notEmpty 优化为读取 size0 子列。
- isNull 优化为读取 null 子列。
- isNotNull 优化为读取 null 子列。
- count 优化为读取 null 子列。
- mapKeys 优化为读取 keys 子列。
- mapValues 优化为读取 values 子列。
- 0 — 禁用优化。
- 1 — 启用优化。
optimize_inverse_dictionary_lookup
optimize_multiif_to_if
multiIf 替换为 if。
optimize_normalize_count_variants
optimize_on_insert
- 0 — 禁用。
- 1 — 启用。
optimize_prewhere_after_pushdown
MergeTree 读取步骤上方
产生额外过滤器 (例如通过 JOIN 的谓词下推、
投影重写) 后,执行第二轮 PREWHERE 提升。若已存在 PREWHERE,新的
过滤器会通过 AND 合并到其中,而不是保留为单独的过滤器步骤。
optimize_qbit_distance_function_reads
QBit 数据类型上的距离函数替换为等效函数,后者仅从存储中读取计算所需的列。
optimize_read_in_order
- 0 —
ORDER BY优化已禁用。 - 1 —
ORDER BY优化已启用。
optimize_respect_aliases
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
false。
可选值:
- true, false
optimize_syntax_fuse_functions
- 0 — 不融合参数相同的函数。
- 1 — 融合参数相同的函数。
optimize_throw_if_noop
OPTIMIZE 没有执行任何操作,也会成功返回。此设置可让您区分这些情况,并在异常消息中获取原因。
可能的值:
- 1 — 启用抛出异常。
- 0 — 禁用抛出异常。
optimize_time_filter_with_preimage
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
optimize_using_constraints
false。
可能的值:
- true, false