diff --git a/docs/zh/21-tdinternal/01-arch.md b/docs/zh/21-tdinternal/01-arch.md
index 0a90781c0537451f3b3172299ad69bcfda16cc92..a910c584d6ba47844d51e45e5010581075a72fb6 100644
--- a/docs/zh/21-tdinternal/01-arch.md
+++ b/docs/zh/21-tdinternal/01-arch.md
@@ -278,12 +278,14 @@ TDengine 对每个数据采集点单独建表,但在实际应用中经常需
图 5 多表聚合查询原理图
-1. 应用将一个查询条件发往系统;
-2. taosc 将超级表的名字发往 meta node(管理节点);
-3. 管理节点将超级表所拥有的 vnode 列表发回 taosc;
-4. taosc 将计算的请求连同标签过滤条件发往这些 vnode 对应的多个数据节点;
-5. 每个 vnode 先在内存里查找出自己节点里符合标签过滤条件的表的集合,然后扫描存储的时序数据,完成相应的聚合计算,将结果返回给 taosc;
-6. taosc 将多个数据节点返回的结果做最后的聚合,将其返回给应用。
+1. 客户端从 mnode 获取库和表的元数据信息;
+2. mnode 返回请求的元数据信息;
+3. 客户端向超级表所属的每个 vnode 发送查询请求;
+4. vnode 启动本地查询,在获得查询结果后返回查询响应;
+5. 客户端向聚合节点 (在本例中为 qnode)发送查询请求;
+6. qnode 向每个 vnode 节点发送数据请求消息来拉取数据;
+7. vnode 返回本节点的查询计算结果;
+8. qnode 完成多节点数据聚合后将最终查询结果返回给客户端;
由于 TDengine 在 vnode 内将标签数据与时序数据分离存储,通过在内存里过滤标签数据,先找到需要参与聚合操作的表的集合,将需要扫描的数据集大幅减少,大幅提升聚合计算速度。同时,由于数据分布在多个 vnode/dnode,聚合计算操作在多个 vnode 里并发进行,又进一步提升了聚合的速度。 对普通表的聚合函数以及绝大部分操作都适用于超级表,语法完全一样,细节请看 TAOS SQL。
diff --git a/docs/zh/21-tdinternal/multi_tables.webp b/docs/zh/21-tdinternal/multi_tables.webp
index 8f649e34a3a62d1b11b4403b2e743ff6b5e47be2..481020a5f718e2ad3f1265b2785ddff8ad9ee292 100644
Binary files a/docs/zh/21-tdinternal/multi_tables.webp and b/docs/zh/21-tdinternal/multi_tables.webp differ