Mam 2 tabele: produkty oraz zdjęcia.
Produktów jest ok 200tys oraz zdjęć ok 400tys. Dla jednego produktu czasami przypada po kilka zdjęć. Nie wszystkie produkty mają zdjęcia.
Potrzebuje wyciągnąć max 10 produktów, które mają zdjęcia, oraz są promowane. Niby problem banalny, lecz na lokalnym serwerze zapytanie mieli się ok 7 sek, na serwerze prod. ok 4 sek. Czas ten stanowczo jest za długi. Kiedy z zapytania wywalę GROUP BY zapytanie na localhoscie trwa ok 2 sek.
Z góry dziękuje za pomoc.
O to moje zapytanie:
SELECT cats.name, image.filename, ads.title,city.name,ads.id,ads.promotion FROM ads LEFT JOIN cities AS city ON ads.city_id = city.city_id LEFT JOIN adimages AS images ON images.adid = ads.adid LEFT JOIN adcats AS cats ON cats.catid = ads.catid WHERE cats.enabled = '1' AND ads.enabled = '1' AND ads.promotion = '1' AND images.filename IS NOT NULL GROUP BY ads.adid ORDER BY ads.type DESC, ads.hits DESC LIMIT 10