- Home
- Categorie
- Coding e Sistemistica
- PHP
- Importazione grandi file xml o txt
-
Importazione grandi file xml o txt
Ciao ragazzi,
chiedo scuso se ri-posto, ma forse ho formulato male la domanda.
Ho necessità di importare dei records da un documento XML o TXT di grandi dimensioni (91Mb il file XML e 23 Mb il file TXT) in un database MySQL. Questi file sono aggiornati 3 volte a giorno, per cui io devo fare in modo che il database sia sempre aggiornato.....
Mi hanno detto di fare un batch ftp, ma non so cosa sia.....
Ragazzi vi prego, datemi una mano, non so dove sbattere la testa!!!!
GRAZIE a chi mi vorrò rispondere.....:))
Mauretto
-
Prova a farti una query in locale, zippa e vedi quando pesano i files. Se sei fortunato riesci in questo modo.
-
Ciao linoma,
e grazie per la risposta.
Ti chiedo scusa, puoi essere + dettagliato?....non ho capito cosa intendi per query locale..e come zippo/unzippo il file?
Ti ringrazio di cuore
M.
-
Il discorso è molto semplice, spero che poi faccia al caso tuo. Devi cmq fare delle queries per importare i tuoi files in MySQL. Per evitare il trasferimento dei 20 ed oltre MBs, dicevo forse se provi a creare in locale un file .sql con dentro la tua INSERT INTO VALUES(....) etc etc.
Lo zippi e poi la carichi, anche cn phpmyadmin, forse riesci a portarti un file cn una riduzione che potrebbe arrivare anche 10 a 1.
Ripeto è un'idea che va poi valutata alla luce della realta che hai.
-
Ciao,
allora, sono riuscito a fare questa cosa, sono a metà della soluzione.
Prendo il file txt, lo apro con fopen, lo sfoglio riga per riga con fgets (4096).
Ogni riga me la esplodo con explode e poi mi importo il tutto con un ciclo for.
Funziona tutto perfettamente ma.........mi va in timeout dopo 30 secondi....
Ho provato a spezzettare la query in più. Ho notato che se faccio fare contemporaneamente più cicli da 1000 l'uno (da 0 a 1000, da 1001 a 2000 etc..) riesco a fargli fare tutto.....
Vi prego, sapete dirmi se è un approccio che va bene?....insomma se avete altre idee per migliorare la cosa, magari dopo posto il codice finale che sarà di aiuto ad altri..?
GRAZIE
-
Se va bene x te va bene x tutti, questo e' chiaro forse ad ogni intervallo ti conviene aggiornare il timeout cs nn scade.