Autor Zpráva
Peyton
Profil *
Dobrý večer,
řeším následující problém.

Mám tento příkaz:
        
$result = mysql_query("UPDATE bases SET ...... WHERE `Kod`='$Kod_Pohoda'");       
if (mysql_affected_rows()==0) {
    $result = mysql_query("insert into bases (........')");
}

Jde o to, že těch položek sloupců, které se modifikují/přidávají je 25 a množství záznamů je cca 20 000. Jedná se o načteční dat o zásobách společnosti ze zdrojového xml, které má samo o sobě 10MB. Do standartního limitu 30s pro skript se samozřejmě neumím s tímto vejít, ale předpokládám, že to bude jen díky neefektivnosti mého příkazu. Napadá Vás lepší? Je to jednoduché. Pokud není záznam, tak ho přidej, pokud je, ale změněný, tak jej oprav.

Budu rád za každou reakci. Nyní to na mém test serveru běží 4,5 minuty.


Opravuji se, 14,5 minuty.
Kcko
Profil
1/ INSERT INTO .... ON DUPLICATE KEY UPDATE
2/ Co se tyká časového limitu, nastav si větší pokud můžeš (set_time_limit), pokud tak to zpracovávat po dávkách (po částech), rozsekat na menší toky a zpracovat.
Peyton
Profil *
Kcko:
No :) chvíli jsem nad tím laboroval, ale pak jsem vyhrknul: "HUSTÝ".
děkuji moc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: