# 多表连接解决方案

+ 执行计划

![left](./student-guide/diagram/01-51-1.png)

------------------------------------------------------------

提到的索引被添加后，我们再看下执行计划：

（略）

从执行计划我们看到，驱动表 t1 先执行的是索引范围扫描 IndexRangeScan ，大概过滤出了 34214.61 (估算) 条记录，然后又回表 IndexLookUp 获取符合条件的 t1 的记录，然后通过 IndexHashJoin 表 join 方式和 t2 表进行 join 操作，t2 表的数据检索方式是通过刚才添加的 t2.k 上的索引，优化器估算每次扫描大概只需要扫描 5.73 行数就可以检索出结果，比没加索引时的需要扫描 1,000,000 行有非常明显的性能提升。

通过以上调优，这个 SQL 的执行时间从 1.5 降低到 0.2 秒，提升比较明显。
