J'ai comme 50 fichiers txt chacun avec environ 8 colonnes et 80 000 enregistrements. J'ai écrit un script dans Matlab qui lit tous les fichiers un à un et les met ensuite dans MySQL en utilisant une seule instruction INSERT pour chaque fichier. Cependant, cela prend énormément de temps (même pour un seul fichier!). J'ai également essayé d'utiliser PHPmyAdmin qui dit que le fichier est trop gros pour être téléchargé (environ 8 Mo). Alors s'il vous plaît suggérer une solution de contournement et quel est le moyen idéal d'importer habituellement de gros fichiers txt. Combien de temps faut-il normalement pour importer un seul fichier de ce type?Un moyen plus rapide d'importer des milliers d'enregistrements à partir d'un seul fichier txt dans la base de données MySQL?
Répondre
Utiliser la syntaxe LOAD DATA INFILE
.
Essayez mysqlimport
type de MyISAM table importera également plus rapide, dépend de si vous avez besoin de soutien transactionnel (InnoDB).
transaction de départ avant de l'insérer et InnoDB rattrape MyISAM (ne pas oublier de commettre après;)) – Mchl
Utilisez des INSERTS multiples. Ce n'est pas si cher, car vous ne vous connectez encore à mysql qu'une seule fois. Vous pouvez ensuite utiliser une boucle pour mettre à jour vos valeurs (-> votre sql) et exécuter (je pense que c'est "récupérer" pour mathlab) la requête.
(voir http://spx.arizona.edu/Projects/Database/Accessing%20mySQL%20through%20Matlab.pdf par exemple)
Tout ce que vous avez besoin est dans ce manuel: http://dev.mysql.com/doc/refman/5.0/en/insert-speed.html
oui, la LOAD DATA semble travaille assez vite. Je me demande pourquoi une seule insertion pour plusieurs enregistrements prend tellement de temps !! – Gaurav