Aller au contenu

Accélérer l’importation des fichiers SQL

Ca m’arrive souvent de devoir importer des bases de données MySQL assez costaud (plus de 1Go), et ce genre d’opération peut prendre 1 bonne heure, et ça c’est si tu as une machine de notre époque.

Mais ça, c’était avant. 🙂

Depuis peu, j’ai découvert un moyen très simple et terriblement efficace pour réduire considérablement le temps d’importation des fichiers SQL. Au lieu de mettre 1 heure, on met 5 à 10 minutes. Oui oui, genre 10 minutes maxi, pas plus.

Pour cela, il suffit de mettre au début de ton fichier :

et à la fin :

Et voilà.

Mais ça fait quoi exactement ?

En fait, quand tu importes des données dans une base en InnoDB, MySQL va flush les logs pour chaque INSERT. Et ça fait consomme pour rien. Donc on le désactive.
Ensuite, MySQL va vérifier tout ce qui est clé unique et étrangère, histoire d’être sûr qu’il n’y a pas de problème. Nous on aime le danger, alors on désactive ces vérifications histoire d’optimiser l’importation.

M’enfin, il y a des limites à tout, donc on réactive tout ça une fois fini.

Vous n’avez plus d’excuses pour squatter Youtube pendant 1 heure, « le temps que mon import se termine ». 😉

 

Sources :