use_top_k_dynamic_filtering
ORDER BY <column> LIMIT n 查询时启用动态过滤优化。
启用后,查询执行器会尝试跳过那些不会进入结果集最终 top N 行的粒度和行。这项优化具有动态特性,延迟改善效果取决于数据分布以及查询中是否存在其他谓词。
可能的值:
- 0 — 已禁用。
- 1 — 已启用。
use_top_k_dynamic_filtering_for_variable_length_types
String、Array、Map、包含变长元素的 Tuple) 时应用 use_top_k_dynamic_filtering。
对于这类类型,当列的字典序最小值占主导 (例如大多为空字符串) 且只能跳过很少的粒度时,动态过滤执行逐行阈值比较的开销可能会超过其带来的收益。在这种情况下,动态过滤会增加查询延迟,而非带来改进。
当此设置为 0 时,动态过滤仅适用于值在内存中具有固定最大大小的列 (数值、Date、DateTime、FixedString、Enum、这些类型的 Nullable 以及这些类型的 Tuple) 。设置为 1 时,动态过滤也会应用于变长类型。
可选值:
- 0 — 禁用。
- 1 — 启用。