表的主要连接方法

  • 排序合并连接 (Sort Merge Join, SMJ)

    适用于大型数据集,先对两个表排序后进行合并操作。

  • 嵌套循环连接 (Nested Loops, NL)

    使用索引在一个表中查找匹配行,适合小型表与索引列。

  • 哈希连接 (Hash Join, HJ)

    通过哈希算法连接较大的无序表。

  • 笛卡儿乘积 (Cartesian Product)

    通常用于测试或无连接条件时产生,资源消耗较大。

SQL执行过程中的关键运算符

  1. sort:排序操作,如order bygroup by。排序会消耗大量资源,需谨慎使用。

  2. filter:用于过滤数据,如not inmin函数等。过滤可以消除分区,但某些情况会增加查询复杂度。

  3. view:内联视图会直接从派生视图中选择数据。当视图无法合并至主查询时,则作为投影视图。

示例SQL:

EXPLAIN PLAN FOR
SELECT ename, tot
FROM emp,
  (SELECT empno, SUM(empno) tot
   FROM big_emp
   GROUP BY empno) tmp
WHERE emp.empno = tmp.empno;