diff --git a/system-variables.md b/system-variables.md index 23c99388b914..fbdb6aefed22 100644 --- a/system-variables.md +++ b/system-variables.md @@ -5429,6 +5429,25 @@ Query OK, 0 rows affected, 1 warning (0.00 sec) - `force_streaming`:TiFlash 直接将数据发送到下一阶段的 HashAgg,不进行预聚合操作 - `auto`:TiFlash 根据当前工作负载的聚合度自动选择是否进行预聚合操作 +### `tiflash_hash_join_version` 从 v9.0.0 版本开始引入 + +> **警告:** +> +> 该变量控制的功能为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 [issue](https://github.com/pingcap/tidb/issues) 反馈。 + +- 作用域:SESSION | GLOBAL +- 是否持久化到集群:是 +- 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:是 +- 类型:枚举型 +- 默认值:`legacy` +- 可选值:`legacy`、`optimized` +- 控制 TiFlash 是否使用 Hash Join 算子的优化版。默认值为 `legacy`,代表不使用优化版。若设置为 `optimized`,TiFlash 在执行 Hash Join 算子时将使用其优化版,以提升 Hash Join 性能。 + +> **注意:** +> +> - 目前,仅 Inner Join 类型的连接操作支持优化版的 Hash Join。对于其他类型的连接操作,即使将该变量设成 `optimized`,TiFlash 也不会使用优化版的 Hash Join。 +> - 目前,TiFlash 中优化版的 Hash Join 不支持在内存使用超限时落盘内存数据。如果 [`tiflash_mem_quota_query_per_node`](/system-variables.md#tiflash_mem_quota_query_per_node-从-v740-版本开始引入) 和 [`tiflash_query_spill_ratio`](/system-variables.md#tiflash_query_spill_ratio-从-v740-版本开始引入) 均大于 `0`,或者 [`tidb_max_bytes_before_tiflash_external_join`](/system-variables.md#tidb_max_bytes_before_tiflash_external_join-从-v700-版本开始引入) 大于 `0`,TiFlash 将不会使用优化版的 Hash Join。 + ### `tikv_client_read_timeout` 从 v7.4.0 版本开始引入 - 作用域:SESSION | GLOBAL