Когда мы выполняем операцию соединения двух таблиц (скажем, t1, t2, содержащих n1 и n2 количество кортежей соответственно) на общем атрибуте, скажем «B», мы визуализируем, что каждый кортеж t1 сравнивается с каждым кортежем t2 и затем проверяется условие для атрибута B. Означает ли это, что при выполнении операции соединения база данных подготавливает промежуточный набор данных, содержащий n1 * n2 количество кортежей, а затем фильтрует результат в соответствии с условием на B. Не думаете ли вы, что это неэффективно в памяти?
Пожалуйста, кто-нибудь подскажет, как на самом деле операция соединения выполняется БД? Что если t1 и t2 слишком велики, тогда кортежи n1 * n2 не помещаются в основную память? Пожалуйста, объясните кому-нибудь.