# 分布式 SQL 运算

__*分布式 SQL*__
__*TiKV 并行*__

![`smart`](./student-guide/diagram/tidb-computing-dist-sql-flow.drawio.png)

+ 分布式 **SQL** 与 **TiKV**

```
tidb> SELECT ~!@COUNT(*)@!~ FROM universe.planets
   -> WHERE category_id = 1;
```

-------------------------------------------------------------
为了让计算尽量靠近存储节点,以避免大量的 RPC 调用。首先,SQL 中的谓词条件 `name = "TiDB"` 应被下推到存储节点进行计算,这样只需要返回有效的行,避免无意义的网络传输。然后,聚合函数 `Count(*)` 也可以被下推到存储节点,进行预聚合,每个节点只需要返回一个 `Count(*)` 的结果即可,再由 SQL 层将各个节点返回的 `Count(*)` 的结果累加求和。

