Je charge un gros fichier texte dans ma base de données via LOAD DATA. Le fichier fait environ 122 000 lignes. Laissé seul, le db est conçu pour être déclenché sur AFTER INSERT sur cette table. Ce qui se passe est exactement qui commencent la requête d'exécution, ne cesse d'exécution pour comme 15-20 minutes, puis il retourneLOAD DATA LOCAL INFILE perd la connexion, comment puis-je corriger le timeout?
Error Code: 2013
Lost connection to MySQL server during query
puis
Error Code: 2006
MySQL server has gone away
Après l'apparition des erreurs, je re-exécuter la requête et se termine immédiatement;
0 row(s) affected
Records: 122574 Deleted: 0 Skipped: 122574 Warnings: 0
Et la table est en effet importée;
select * from quote
122574 row(s) returned
Je mysqld 01/05/51 sous Mac OS X 10.6.4 et ma requête est
LOAD data local INFILE
'/Users/ash/quotes/data.txt'
INTO TABLE quote fields
TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\r\n'
(quote.date,quote.ticker,quote.open,
quote.high,quote.low,quote.close,quote.volume,@market)
SET market = 'sp';
Il semble que le db-connexion est le calendrier, comment puis-je résoudre ce problème?
Vous pouvez envisager d'éliminer les AFTER INSERT et d'effectuer à la place leurs opérations, en masse, après le chargement du fichier. 122K lignes, en particulier avec juste quelques colonnes numériques, chacune, est * minuscule * et ne devrait vraiment prendre que quelques secondes, au plus ... – user359996