Autor Zpráva
dRaGen
Profil
Zdravím,
Narazil sem na takový menší zádrhel ... potřebuju co největší optimalizaci skriptu z hlediska rychlosti a zatížitelnosti.
Takže procházím xml soubor a sbírám data do pole, jakmile naplním pole (název týmu, idečko zápasu atd...) tak se podívam do db jestli se tenhle řádek v db nachází, pokud ano tak upravím údaje, pokud ne tak zapíšu do tabulky.
Nebylo by lepší nejdříve si načíst veškeré řádky do pole a pak je pomocí php porovnat? co myslíte?
jedná se řádově o 5000 řádků...
tiso
Profil
dRaGen
1. select všetky ktoré tam už sú
2. hromadný insert ktoré tam nie sú
3. update tých ktoré tam sú.
Kroky 2 a 3 môžeš prehodiť.
Joker
Profil
A k čemu ten select?
Já bych se nestaral, jestli data v databázi už jsou a prostě udělal: INSERT ... ON DUPLICATE KEY UPDATE ...
...a databáze už by si se sama měla postarat, aby se záznam vložil nebo upravil.

Jestliže jste schopný spárovat záznam z XML se záznamem v databázi, půjde to udělat i tak, aby fungovalo INSERT - ON DUPLICATE KEY UPDATE.
tiso
Profil
Joker - INSERT ... ON DUPLICATE KEY UPDATE ... sa dá použiť aj pri hromadnom inserte (INSERT INTO table(...) VALUES(...),(...)...) ?
dRaGen
Profil
Tak už sem to zpracoval pomocí ON DUPLICATE dotazu a čas se zkrátil z 12ti vteřin na 3vteřiny ... takže super díky moc
tiso: a ano dá se použít při hromadnym insertu ...
INSERT INTO table (a,b,c,d,e) VALUES (1,2,3,4,5), (6,7,8,9,10) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e);
tiso
Profil
Joker, dRaGen - budem múdrejší. Na potrebu hromadného insert/update naraz som ešte nenarazil.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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