![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z zapytaniem SQL. Stworzyłem do systemu newsow komentarze. Na stronie głównej przy każdym newsie licznik pokazuje ile jest komentarzy dla danego newsa. Komentarzy jest jak dużo, że przeliczenie tego obciąża serwer w takim stopniu, że destabilizuje jego prace. Poniżej wklejam zapytanie:
SELECT SQL_CALC_FOUND_ROWS newsy_id,newsy_data,newsy_czas,newsy_licznik,newsy_tytul,newsy_tekstskrocony,new sy_tekstrozszerzony,newsy_foto,fotosy_file,dzialy_nazwa,COUNT(komentarze_id) licznik FROM newsy LEFT JOIN fotosy ON (fotosy_id=newsy_foto) LEFT JOIN dzialy ON (dzialy_id=newsy_dzial) LEFT JOIN komentarze ON (komentarze_news = newsy_id AND komentarze_status = '1') WHERE newsy_status='1' GROUP BY newsy_id ORDER BY newsy_data DESC, newsy_czas DESC LIMIT 0, 25 Będę wdzięczny za uwagi. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Wydaje mi się, że zastosowanie w tym momencie podzapytania może okazać się wydajniejsze. Nie budujesz bowiem wielkiego złączenia tabel (w momencie, gdy do newsa jest wiele komentarzy) z grupowaniem:
Jeśli się nie machnąłem to powinno działać. Daj znać jak wyglądają czasy wykonań obu zapytań. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 01:40 |