Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions tiflash/use-tiflash.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,11 +222,18 @@ TiSpark 目前提供类似 TiDB 中 engine 隔离的方式读取 TiFlash,方

TiFlash 主要支持谓词、聚合下推计算,下推的计算可以帮助 TiDB 进行分布式加速。暂不支持的计算类型主要是表连接和 DISTINCT COUNT,会在后续版本逐步优化。

目前 TiFlash 支持了有限的常用表达式下推,支持下推的表达式可参考[该文件](https://github.com/pingcap/tidb/blob/v4.0.0-rc/expression/expression.go#L979)。
目前 TiFlash 支持了有限的常用表达式下推,支持下推的表达式包括:

```
+, -, /, *, >=, <=, =, !=, <, >, ifnull, isnull, bitor, in, mod, bitand, or, and, like, not,
case when, month, substr, timestampdiff, date_format, from_unixtime, json_length, if, bitneg, bitxor, cast(int as decimal), date_add(datetime, int), date_add(datetime, string)
```

其中,`cast` 和 `date_add` 的下推默认不开启,若需要手动开启,请参考[优化规则及表达式下推的黑名单](/blacklist-control-plan.md)

目前 TiFlash 不支持下推的情况包括:

- 所有包含 Duration 和 JSON 的表达式均不能下推
- 在聚合函数或者 WHERE 条件中包含了不在[该文件](https://github.com/pingcap/tidb/blob/v4.0.0-rc/expression/expression.go#L979)列表中的表达式,聚合或者相关的谓词过滤均不能下推
- 所有包含 Duration 的表达式均不能下推
- 在聚合函数或者 WHERE 条件中包含了不在上述列表中的表达式,聚合或者相关的谓词过滤均不能下推

如查询遇到不支持的下推计算,则需要依赖 TiDB 完成剩余计算,可能会很大程度影响 TiFlash 加速效果。对于暂不支持的表达式,将会在后续陆续加入支持,也可以联系官方沟通。