Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.07.2008 Ostrzeżenie: (0%)
|
Przepraszam za brak polskich znakow.
Wdalem sie w dyskusje na temat wydajnosci z jednym z kolegow w pracy i chcial bym prosic was o wasze zdanie. Mamy baze danych a w niej "kilka" tabel i bardzo duzo rekordow ....powiedzmy. Co jest szybsze: 1 Skomplikowane zapytanie SQL z 4 JOIN'ami 2 Proste zapytania SQL bez JOIN'ow Nie bierzemy pod uwage czasu na komunikacje miedzy aplikacja a baza danych a we wszystkich przypadkach mamy potrzebne indeksy a baza danych to MySQL (InnoDB). Ten post edytował m2ka 21.06.2012, 11:21:44 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Krótka odpowiedź: to zależy.
Długa odpowiedź: Raczej nie da się jednoznacznie odpowiedzieć na to pytanie. Nie wiemy jak dokładnie wyglądają te zapytania, ile danych muszą przetworzyć itp. A nawet jeżeli już znalibyśmy te detale, nadal pozostawałoby pytanie o silnik tabeli (MyISAM/InnoDB), wersję bazy danych czy maszyny na której ona pracuje - to wszystko ma znaczenie. Najprościej byłoby dla Ciebie po prostu sprawdzić doświadczalnie oba rozwiązania. Wtedy będziesz wiedział jak w tej konkretnej sytuacji wyglądają wyniki. Ogólnie w większości przypadków (szczególnie gdy trzeba wykonać złączenia dla wielu rekordów) JOIN powinien być szybszy, w końcu dla relacyjnych baz danych jest to najbardziej naturalne wyrażenie, pod które są one optymalizowane w największym stopniu. |
|
|
|
m2ka Pytanie o wydajnosc 21.06.2012, 10:20:56
foxbond Na swoim przykładzie (na moich aplikacjach) mogę ś... 21.06.2012, 11:34:56
m2ka Przypominam ze pytanie nie dotycz 4 zapytan vs 1 z... 21.06.2012, 12:14:13 
Theqos Cytat(m2ka @ 21.06.2012, 13:14:13 ) P... 25.06.2012, 07:18:56
athabus Zdecydowanie obstawiam wersję JOIN bo jak rozumiem... 21.06.2012, 13:12:43
nasty Masz tutaj do czynienia z kilkoma roznymi przypadk... 27.06.2012, 04:29:11 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 01:06 |