# TiFlash的主要功能：引擎智能选择

![`smart`](TiFlashSmartSelection_aa_004_20220513.png)

-------------------------------------------------------------
TiDB 服务器作为协调者，可以评估查询语句，并根据图中的情况自动决定是在 TiKV 上执行查询，还是在 TiFlash 上执行查询，或者两者都执行。

由于`product`表不接受任何列，只过滤条件`product.batch_id = 'B1328'`，而且`product`表中有`(pid,batch_id)`的索引，因此可以选择在TiKV中进行索引读取，过滤出满足条件的`product`表中的数据。

将`price`列从`sales`中取出来进行聚合（AVG）而不带任何过滤条件，相当于全表扫描，因此更适合在TiFlash中进行全表扫描。

最后，在 TiDB 服务器上聚合满足条件的两个数据路径以获得结果。
