Autor | Zpráva | ||
---|---|---|---|
dRaGen Profil |
#1 · Zasláno: 12. 2. 2009, 16:05:32
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 |
#2 · Zasláno: 12. 2. 2009, 17:30:51
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 |
#3 · Zasláno: 12. 2. 2009, 17:45:03
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 |
#4 · Zasláno: 12. 2. 2009, 17:59:50
Joker - INSERT ... ON DUPLICATE KEY UPDATE ... sa dá použiť aj pri hromadnom inserte (INSERT INTO table(...) VALUES(...),(...)...) ?
|
||
dRaGen Profil |
#5 · Zasláno: 13. 2. 2009, 01:01:22
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 |
#6 · Zasláno: 13. 2. 2009, 01:30:47
Joker, dRaGen - budem múdrejší. Na potrebu hromadného insert/update naraz som ešte nenarazil.
|
||
Časová prodleva: 15 let
|
0