Mysql
 sql >> Base de données >  >> RDS >> Mysql

Importation de grandes tables MySQL

Une partie du problème d'avoir une exportation aussi énorme est (vraisemblablement) due aux redondances qu'elle contient. Il existe probablement des milliers de commandes "INSERT" qui, lorsqu'elles sont chargées en une seule fois, occupent une énorme quantité de mémoire.

Si vous avez exactement les mêmes données qu'un CSV, ce que je ferais, c'est créer un petit script PHP pour parcourir ligne par ligne le fichier CSV et créer dynamiquement une requête SQL INSERT, puis l'exécuter. Cela devrait maintenir l'empreinte mémoire très faible puisque vous pourriez continuer à remplacer les valeurs de vos variables temporaires (correspondant aux champs) après chaque insertion.

J'ai lié à la fonction que j'essaierais d'utiliser. Il s'appelle fgetcsv. Ce lien contient également des exemples de scripts qui, je pense, pourraient vous être utiles et qui ont été créés par d'autres utilisateurs.

Bonne chance !

Fonction PHP fgetcsv à utiliser pour la lecture ligne par ligne