w bazie mam kilka tabel z ktorych chcialbym wyciagnac dane przy uzyciu jednego (ponizszego) zapytania:
SELECT * FROM tabela1, tabela2, tabela3 WHERE tabela1.STATUS='green' AND tabela1.id=tabela2.id AND tabela2.id=tabela3.id ORDER BY tabela1.STATUS DESC LIMIT 0, 200
struktory tabel sa nastepujace:
tabela1
id imie nazwisko status
tabela2
id kol1 kol2 kol3 ... kol25
tabela3
id kol1 kol2 kol3 ... kol15
w tabeli1 sa 4 kolumny i okolo 45tys rekordow
w tabeli2 jest 25 kolumn i okolo 60tys rekordow
w tabeli3 jest 15 kolumn i okolo 20tys rekordow
powyzsze zapytanie dziala poprawnie ale czasami sie 'zawiesza' tzn trwa dluzej niz 30sek i dostaje komunikat o przekroczonym czasie na wykonanie skryptu
pytanie moje brzmi:
czy zapytanie to jest skonstruowane w optymalny sposob?
jaka jest roznica pomiedzy tak skonstruowanym zapytaniem a zapytaniem przy uzyciu JOIN?
czy duza liczba rekordow moze miec wplyw na czas nawet jak ograniczam do wyswietlenia tylko dwustu rekordow?
i ostatnie jak moglbym zmniejszyc czas dla takiego zapytania - czy wogole da sie cos zrobic?