# 执行读取 (C)

![center](./student-guide/diagram/05-Read-execution-01-03.png)

-------------------------------------------------------------
最后，查询结果会返回给 TiDB Server，但是能推送到 TiKV 上的计算请求目前有 TableScan、IndexScan、Selection、TopN、Limit 和 PartialAggregation 等，其他更复杂的算子，还是需要在单个 TiDB Server 上进行处理。所以会在 TiDB Server 进行汇总处理。汇总完毕后，结果集就形成了。如果是查询操作，则将结果集（包括Field 列表、行数据）写回客户端。

这里需要提到的是，在读取的执行(B)中，一部分算子被下推到 TiKV 上去执行，另一部分则最后在 TiDB Server 中进行汇总。于是就有了两种计算任务（Task），它们是 Cop Task 和 Root Task，具体定义如下：
  - CopTask 是需要下推到存储引擎（TiKV）上进行计算的物理计划，每个收到请求的 TiKV 节点都会做相同的操作。
  - RootTask 是在 TiDB 中进行计算的那部分物理计划。