Autor | Zpráva | ||
---|---|---|---|
Peyton Profil * |
#1 · Zasláno: 10. 10. 2012, 23:58:05 · Upravil/a: Peyton
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 |
#2 · Zasláno: 10. 10. 2012, 23:59:56
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 * |
#3 · Zasláno: 11. 10. 2012, 01:05:46
Kcko:
No :) chvíli jsem nad tím laboroval, ale pak jsem vyhrknul: "HUSTÝ". děkuji moc |
||
Časová prodleva: 12 let
|
0