ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ на больших таблицах в базах данных - PullRequest
0 голосов
/ 28 марта 2012

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

Пожалуйста, кто-нибудь подскажет, как на самом деле операция соединения выполняется БД? Что если t1 и t2 слишком велики, тогда кортежи n1 * n2 не помещаются в основную память? Пожалуйста, объясните кому-нибудь.

1 Ответ

1 голос
/ 28 марта 2012

Я не думаю, что в настоящее время присоединиться к работе именно так.Это упрощенный взгляд на работу СУБД, но не совсем так.Взгляните на этот отличный пост в нашем собственном StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...