W przypadku sprzężeń wewnętrznych pojedyncze zapytanie ma sens, ponieważ otrzymujesz tylko pasujące wiersze. W przypadku sprzężeń lewostronnych wiele zapytań jest znacznie lepszych... spójrz na następujący test porównawczy, który wykonałem:
-
Pojedyncze zapytanie z 5 połączeniami
zapytanie:8.074508 sekund
wielkość wyniku:2268000
-
5 zapytań z rzędu
łączny czas zapytania:0,00262 sekundy
wielkość wyniku:165 (6 + 50 + 7 + 12 + 90)
.
Zauważ, że w obu przypadkach otrzymujemy te same wyniki (6 x 50 x 7 x 12 x 90 =2268000)
lewe złączenia zużywają wykładniczo więcej pamięci z nadmiarowymi danymi.
Limit pamięci może nie być tak zły, jeśli łączysz tylko dwie tabele, ale generalnie trzy lub więcej i staje się to warte różnych zapytań.
Na marginesie, mój serwer MySQL znajduje się tuż obok mojego serwera aplikacji... więc czas połączenia jest znikomy. Jeśli czas połączenia jest w sekundach, być może jest to korzyść
Frank