Page 1 sur 1

importer csv important

Posté : 12 sept. 2006, 13:20
par jojolapine
Bonjour à tous,
j'ai besoin actuellement d'importer un csv de plus 40000 enregistrements...
Donc j'ai même pas essayer de le faire en une requête :lol: , c'est même pas la peine!
Bon alors voilà la démarche que je vais suivre:
1- je parse le csv, met tout ça dans un grand tableau
2- je prend par exemple 500 enregistrements que j'insère dans la bdd
3- je redirige sur la même page après avoir effacer les 500 première entrée du tableau, et je repart au step2, jusqu'a la fin.

Bon déja, est-ce que vous pensez que se soit la bonne méthode ?

Mais ma question ne porte pas entièrement la dessus, je voudrai avoir votre avis pour le step 2:
j'ai deux solutions:

1-je fait une boucle qui fait un insert pur chaque entrée
2-je fait une grosse requête, mais qui risque de prendre du temps...

Quelle serait votre manière de voir les choses?
Ps: je veu essayer de pas toucher au temps limite d'éxécution!

Voilà merci

Posté : 12 sept. 2006, 13:30
par momox
Il faut decomposer ton fichier csv...
@+

Posté : 12 sept. 2006, 14:04
par jojolapine
merci pour l'info :roll:
Mais comme tu as lut mon post, tu te rend compte que j'y avai déja penser, c'est seulement sur la manière que je posait la question :!:

Posté : 12 sept. 2006, 14:24
par zeus
Est-ce que tu as envisagé de passer par l'instruction SQL LOAD DATA INFILE ?

Cette instruction te permet de charger à grande vitesse les données contenues dans un fichier vers une base de données MySQL

Posté : 12 sept. 2006, 15:55
par Cyrano
Absolument, je "plussoie" Zeus, j'ai il y a peu effectué une insertion de fichier (1,5 millions de lignes) en moins de deux minutes (chrono) : je ne me serais pas amusé à parser ça : tu peux parfaitement insérer 40000 lignes en moins de temps qu'il n'en faut pour le dire directement dans une base de données.

Posté : 13 sept. 2006, 10:47
par jojolapine
Merci pour l'info :)
Je vais de ce pas modifier mon bout de script!
je met résolu pour la partie méthodologie!, j'irai voir côté mysql, si j'ai un problème :wink: