连接路径中包括嵌套循环连接、哈希连接和归并连接,本文主要介绍嵌套循环连接和哈希连接的一些特点。
假设有 2 个表,他们的数据分别如下:
TEST_A 表:
| A | B | C | D |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |
TEST_B 表:
| A | B | C | D |
|---|---|---|---|
| 2 | 2 | 2 | 2 |
| 3 | 3 | 3 | 3 |
嵌套循环连接的流程
我们假设这两个表做连接的 SQL 语句生成了一个嵌套循环连接:
SELECT * FROM TEST_A a, TEST_B b WHERE a.a = b.a;
首先,嵌套
本文详细介绍了数据库连接操作中的嵌套循环连接和哈希连接。对于嵌套循环连接,解释了其O(N^2)的复杂度和执行流程。而对于哈希连接,讨论了哈希表的创建过程、内存与IO的权衡,以及如何处理数据倾斜。文章强调了哈希连接中选择合适的小表创建哈希表的重要性,并探讨了在内存不足时的处理策略,如使用Batch进行分块处理。
连接路径中包括嵌套循环连接、哈希连接和归并连接,本文主要介绍嵌套循环连接和哈希连接的一些特点。
假设有 2 个表,他们的数据分别如下:
TEST_A 表:
| A | B | C | D |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |
TEST_B 表:
| A | B | C | D |
|---|---|---|---|
| 2 | 2 | 2 | 2 |
| 3 | 3 | 3 | 3 |
我们假设这两个表做连接的 SQL 语句生成了一个嵌套循环连接:
SELECT * FROM TEST_A a, TEST_B b WHERE a.a = b.a;
首先,嵌套

被折叠的 条评论
为什么被折叠?