Mam problem wyciąganiem danych z bazy. Po napisaniu przykładowego zapytania które wygląda tak:
SELECT p.id,p.name,p.`short_text`,count(ps.id) AS offers FROM pco_product AS p LEFT JOIN pco_product_shop AS ps ON p.id = ps.id_product WHERE (p.id_category IN (1287) AND (ps.date_checked_import >= ps.date_last_shop_import)) GROUP BY ps.id_product ORDER BY offers DESC LIMIT 0, 10
lub
SELECT p.id,p.name,p.short_text, ps.link, ps.price FROM pco_product AS p LEFT JOIN pco_product_shop AS ps ON p.id = ps.id_product WHERE (p.id_category IN (1287)) AND (ps.date_checked_import >= ps.date_last_shop_import) ORDER BY offers DESC LIMIT 0, 10
i inne tym podobne zapytania związane z tymi 2 tabelami.
Skrypt potrafi się wykonywać bardzo długo (nawet kilkanaście sekund).
Dodam że zaczęło się tak dziać w momencie gdy do bazy doszło 20 000 produktów.
W przypadku gdy było ich kilka wszystko działało sprawnie.
Dla mnie jest to bardzo dziwne ponieważ zapytanie jest jest zbyt skomplikowane. Po złączeniu 2 tabel po około 25 000 krotek wszystko się wykonuje bardzo długo. Dlaczego się tak dzieje ? Ktoś miał podobny problem ?
Typ tabeli to MyIsam.
W każdej z tabel jest dużo pol po około 20.
Przy wykonaniu zapytania bezpośrednio w phpMyAdminie czasy są ok na poziomie 0.4 s.
Jednak gdy wykonam to samo zapytanie w
to skrypt albo się zawiesza albo wykonuje się bardzo długo.
<?php ?>