MySQL, PHP vlozenie velkeho mnozstva dat

Programovacie jazyky, rady, poradňa...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa harrison314 »

Zdravim,
do MySQL cez PHP nahadzujem velke pocty malich zaznamov ( datetime, varchar(100),int,int ), lenze pri jednom importe ich moze byt aj 150 000, pri pouziti cyklu s INSERT INTO mi to trvalo 3 hodiny, ked som to obalil do tranzakcie pol hodinu, ale to je strasne vela.
Ako sa da tento cas vkladania stlacit na minimum?



Este dalsia otazocka, nema nahodou dakto XML-ko z menianmi ? format datum - meno(mená) ?
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa ppt »

Preco to importujes cez php a nerobis import priamo sql dumpu - cez mysql pripadne mysqldump?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa harrison314 »

Pretoze to ma byt automatizovane a nemam dump ale tie data parsujem.
forfun
Light Expert
Light Expert
Príspevky: 77
Registrovaný: 03 jan 2010, 17:26

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa forfun »

Takyto sposob si skusal?

Kód: Vybrať všetko

"INSERT INTO table (id,box) VALUES (1,'box1'),(2,'box2'),(3,'box3')"
Je to urcite rychlejsie ako viac insertov ale neviem si predstavit co to bude robit pri takom mnozstve dat, treba vyskusat.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa harrison314 »

forfun: vysledok je rovnaky ako keby pouzijem tranzakcie.
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa mastermind »

mas na tabulke nejake indexy? co je primary key?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa harrison314 »

mastermind napísal:mas na tabulke nejake indexy? co je primary key?
ano ma a skoro vsetko, medzicacom sa trocu zmenila,
int - primary key
datetime - tu by bol tiez vhodny index, dane texty sa budu vypisovat podla datumu vzostupne
varchar(100)
int - index, je to cudzi kluc
int - index, je to cudzi kluc
int - index, je to cudzi kluc
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa sharky-no »

harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa harrison314 »

este som to neskusal, ale v zzdrojaku su pouzite tranzakcie
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: MySQL, PHP vlozenie velkeho mnozstva dat

Príspevok od používateľa sharky-no »

ja tam vidim aj toto

Kód: Vybrať všetko

LOAD DATA
CONCURRENT LOCAL INFILE '${in_file}'
INTO TABLE ${table}
 FIELDS TERMINATED BY ':::,'
LINES TERMINATED BY '^^^\\n'
btw. tiez som to este neskusal, je mozne ze ti to nepomoze, no podla clanku by import cez subor (vygenerovany cez php) mal byt 20x rychlejsi nez cez tranzakcie.
Napísať odpoveď