importer un csv sur une table en prod

WRInaute impliqué
slt,

J'utilise load data infile pour charger un gros csv sur une table en prod, seulement cela met 20min, pendant ces 20mins la table est lockée le site ne peut plus répondre, c'est 10mins si je désactive les index, seulement mes requêtes échoue car l'index fulltext n'est plus là. Comment faire :

1/ pour garder le site "ouvert" pendant l'import
2/ essayer de garder un peu de perf (le serveur load à 5/6 pendant ce temps)

?
 
WRInaute accro
Un peu au hasard...
- utiliser innoDB plutôt que myIsam?
- charger dans une autre table, et remplacer la table ensuite (si c'est un ajout ça implique de faire une copie de la table originale d'abord)?
- découper ton CSV en petits bouts et les charger successivement avec une petite pause entre chaque

Jacques.
 
WRInaute impliqué
innoDB pourquoi pas mais j'ai besoin du fulltext...
charger dans une autre table pourquoi pas mais comment remplacer l'ancienne par la nouvelle, flush tables + cp ?
découper pourquoi pas aussi ou forcer le client à prendre moins de ressources ?

c'est plus sur un switch de la table que j'ai commencé des recherches en vain , je suis pas certain qu'il y ai une façon propre et efficace ?
 
WRInaute accro
begin;
alter table prodtable rename to getoutoftheway;
alter table newtemptable rename to prodtable;
commit;

C'est en tous cas comme ça que je ferais en postgresql, je suppose que ça doit marcher avec mysql...

Jacques.
 
Discussions similaires
Haut