par
Cyrano » 05 juil. 2006, 15:38
Le problème est résolu et la vitesse m'a carrément scotché, voyez plutôt :
Code : Tout sélectionner
mysql> LOAD DATA LOCAL INFILE 'G:/www/tmp/******/***********/addition.txt'
-> IGNORE
-> INTO TABLE `Addition`
-> FIELDS TERMINATED BY '\t'
-> LINES TERMINATED BY '\n'
-> (`ADDMarket`, `ADDVehType`, `ADDID`, `ADDNatCode`, `ADDEQCode`,
-> `ADDVal`, `ADDValUntil`, `ADDCurrency`, `ADDPrice1`, `ADDPrice2`,
-> `ADDTaxRt`, `ADDTax1`, `ADDTax2`, `ADDNet`, `ADDFlag`,
-> `ADDFlagPack`, `ADDStatus`, `ADDRecStatus`, `ADDRecDate`, `ADDTargetGrp`,
-> `ADDAssemble`, `ADDMerchantCode`, `ADDValNewPr`);
Query OK, 7583821 rows affected, 65535 warnings (1 min 16.53 sec)
Records: 7583821 Deleted: 0 Skipped: 0 Warnings: 7583821
7,5 millions de lignes en moins de deux minutes, je crois que la question est quasiment réglée.
Il me reste toutefois un problème avec certains fichiers dont certains champs n'ont pas de donnée du tout, ce qui fait que j'ai deux tabulations cosécutives : le retour est une erreur comme ceci:
Code : Tout sélectionner
ERROR 1265 (01000): Data truncated for column 'EXCTax1' at row 1
Je résouds le problème en ne mettant pas le champ concerné dans la liste parce que toute le colonne est pareille, mais existe-t-il une solution au cas où j'aurais la donnée sur certaines lignes seulement ? Attention, je n'ai absolument aucun contrôle possible sur l'export du fichier utilisé. En clair, comment indiquer qu'il faut insérer "NULL" dans la colonne s'il n'y a rien entre les deux tabulations ?
Le problème est résolu et la vitesse m'a carrément scotché, voyez plutôt :
[code]mysql> LOAD DATA LOCAL INFILE 'G:/www/tmp/******/***********/addition.txt'
-> IGNORE
-> INTO TABLE `Addition`
-> FIELDS TERMINATED BY '\t'
-> LINES TERMINATED BY '\n'
-> (`ADDMarket`, `ADDVehType`, `ADDID`, `ADDNatCode`, `ADDEQCode`,
-> `ADDVal`, `ADDValUntil`, `ADDCurrency`, `ADDPrice1`, `ADDPrice2`,
-> `ADDTaxRt`, `ADDTax1`, `ADDTax2`, `ADDNet`, `ADDFlag`,
-> `ADDFlagPack`, `ADDStatus`, `ADDRecStatus`, `ADDRecDate`, `ADDTargetGrp`,
-> `ADDAssemble`, `ADDMerchantCode`, `ADDValNewPr`);
Query OK, 7583821 rows affected, 65535 warnings (1 min 16.53 sec)
Records: 7583821 Deleted: 0 Skipped: 0 Warnings: 7583821[/code]
7,5 millions de lignes en moins de deux minutes, je crois que la question est quasiment réglée.
Il me reste toutefois un problème avec certains fichiers dont certains champs n'ont pas de donnée du tout, ce qui fait que j'ai deux tabulations cosécutives : le retour est une erreur comme ceci:
[code]ERROR 1265 (01000): Data truncated for column 'EXCTax1' at row 1[/code]
Je résouds le problème en ne mettant pas le champ concerné dans la liste parce que toute le colonne est pareille, mais existe-t-il une solution au cas où j'aurais la donnée sur certaines lignes seulement ? Attention, je n'ai absolument aucun contrôle possible sur l'export du fichier utilisé. En clair, comment indiquer qu'il faut insérer "NULL" dans la colonne s'il n'y a rien entre les deux tabulations ?