Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytania JOIN a wiele zapytań

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:

  1. Pojedyncze zapytanie z 5 połączeniami

    zapytanie:8.074508 sekund

    wielkość wyniku:2268000

  2. 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wywołać procedurę składowaną MySQL w Pythonie?

  2. Jak mogę zasymulować zmienną tablicową w MySQL?

  3. #1071 — Określony klucz był za długi; maksymalna długość klucza to 1000 bajtów

  4. SQLite - ORDER BY RAND()

  5. Jak dodać kolumnę automatycznego przyrostu w istniejącej tabeli w MySQL?