当我们在共同属性'B'上执行两个表(例如,分别包含n1和n2个元组的t1,t2)之间的连接操作时,我们可视化t1的每个元组与每个元组的tuple进行比较检查t2然后检查属性B上的条件。这是否意味着,在执行连接操作时,数据库准备包含n1 * n2元组的中间数据集。然后根据B上的条件过滤结果。难道你不认为这是内存效率低下的吗?
请有人告诉我db实际上是如何进行连接操作的?如果t1& t2太大,那么n1 * n2元组不能适合主内存?请解释一下。
答案 0 :(得分:1)
我认为现在加入的工作并不完全像那样。这是查看RDBMS如何工作的简化方法,但不是纯粹的真实。 在我们自己的StackOverflow上查看这个great post。