Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JOIN czy ręcznie? Co lepsze?
-lukasamd-
post
Post #1





Goście







Witam,
mam pewne pytanie - modyfikuję sobie pewnego CMSa i wszędzie widzę zapytania do bazy oparte na JEFT JOIN (których za bardzo tworzyć nie potrafię). Czy takie zapytania są lepsze niż ręczne wybieranie dokładnych rekordów do pobrania i ręczne wskazywanie powiązań pomiędzy poszczególnymi tabelami (to się chyba zwie iloczyn kartezjański)? Zastanawiam się nad tym co jest wydajniejsze, na 100% nie zawsze wykorzystywane są wszystkie informacje pobierane przy użyciu JOIN'ów...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ręczne? Masz na myśli:
  1. SELECT * FROM tabela_1, a tabela_2 b WHERE a.pole=b.pole

zamiast:
  1. SELECT * FROM tabela_1 a LEFT JOIN tabela_2 b ON a.pole=b.pole

? Nie sądzę aby była różnica w wydajności (a już na pewno nie znacząca). JOINy dają zdecydowanie więcej możliwości:
http://dev.mysql.com/doc/refman/5.0/en/join.html
łączenia tabel ze sobą. Moim zdaniem warto z nich korzystać.
Go to the top of the page
+Quote Post
sowiq
post
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(phpion @ 22.09.2008, 13:33:49 ) *
Nie sądzę aby była różnica w wydajności (a już na pewno nie znacząca).


Mylisz się (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Na małych bazach nie jest to zauważalne. Kiedyś miałem przypadek, że robiłem zapytanie do kilku kolumn za pomocą 'WHERE...' + 'GROUP BY'. Po zapełnieniu bazy do ok 200 tys wpisów / tabelę zapytanie wykonywało się... 8 sekund :] Przepisałem to na JOIN'y i przyspieszyło do 1 sek.

Ten post edytował sowiq 22.09.2008, 13:23:23
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 00:42