napisałem skrypt który ma za zadanie zliczenie ile jest przypisanych wpisów do pojazdów których nazwa docelowa lub nazwa tymczasowa jest zgodna ze wzorcem z tabeli stats_id.
Wszystko działa zgodnie z założeniami, ale niestety działa bardzo wolno.
Dla minimalizacji obciążenia serwera (poleasingowy sprzęt sprzed dekady zmonotwany na poddaszu) stosuję zapis do pliku i pętlę która uruchamiana jest raz dziennie.
Ale nie zmienia to wszystko faktu, że zapytanie - a raczej pętla - wykonuje swoją pracę przez wiele minut. Wynika to z wielkości bazy danych - sumarycznie blisko 15 milionów wpisów we wszystkich tabelach.
Poniżej skrypt o którym mowa:
@include_once("inc_db.php"); $ilosc = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS wynik_aut FROM `vehicles` WHERE `vh_name` LIKE '%" . $qsi['si_showid'] . "%' OR `vh_temp` LIKE '%" . $qsi['si_showid'] . "%'")); $si_id = $qsi['si_id']; $mnozniki = mysql_fetch_array(mysql_query("SELECT (SELECT COUNT(*) FROM `stats_price` WHERE `sp_si` = '" . $si_id . "') AS cnt_price, (SELECT COUNT(*) FROM `vh_bodytype` WHERE `vb_si` = '" . $si_id . "') AS cnt_bodytp, (SELECT COUNT(*) FROM `vh_engines` WHERE ve_si = '" . $si_id . "') AS cnt_engine, COUNT(*) AS cnt_milage FROM `stats_milage` WHERE `sc_si` = '" . $si_id . "'")); $elemental = $ilosc['wynik_aut'] * ($mnozniki['cnt_price'] + $mnozniki['cnt_bodytp'] + $mnozniki['cnt_engine'] + $mnozniki['cnt_milage']); //echo "Wynik dla #" . $si_id . " :"; //echo " " . $mnozniki['cnt_price'] . ","; //echo " " . $mnozniki['cnt_bodytp'] . ","; //echo " " . $mnozniki['cnt_engine'] . ","; //echo " " . $mnozniki['cnt_milage'] . ". "; //echo "Koncowo: " . $elemental . "<br />"; $eco[] = $elemental; }
Z góry dziękuję za każdą pomoc.