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

Comment importer plus de 100 000 enregistrements dans une base de données mysql ?

Le message d'erreur est assez clair et vous indique quel est le problème :la limitation du temps d'exécution dans votre environnement php. Certaines approches pour résoudre ce problème sont donc évidentes :

  1. augmenter la limite de temps de votre environnement

Vous pouvez le faire en augmentant la limite dans votre configuration php ou, si cela est autorisé, en l'augmentant dynamiquement dans votre script d'importation. Donc quelque chose comme ini_set('max_execution_time', 3000) . Les deux options sont documentées. La documentation php doit toujours soyez le premier endroit où vous devriez commencer à chercher une réponse à une telle question.

  1. utiliser un environnement php différent

Généralement, une telle limitation est choisie pour un environnement Web afin de réduire les risques de répondre aux demandes de n'importe qui. Cependant, rien ne s'oppose à l'utilisation d'une configuration différente pour un autre environnement. Les tâches d'importation ne sont généralement pas traitées en utilisant des requêtes Web, mais en utilisant php dans la ligne de commande (CLI). Pour cela, une configuration distincte est généralement utilisée. Là encore, c'est documenté. C'est ce que vous pouvez utiliser ici pour configurer les deux environnements différents l'un de l'autre en fonction de vos besoins. Cependant, pour cela, vous devez avoir accès à php sur CLI. Ce n'est pas un problème sur votre propre système, mais généralement pas disponible sur un service d'hébergement Web bon marché.

  1. divisez votre importation en plus petits morceaux

Étant donné que les données que vous importez sont stockées dans un fichier sql, donc un simple fichier texte, vous pouvez utiliser n'importe quel éditeur de texte ordinaire pour modifier ce fichier. Remarque :un éditeur de texte, pas un traitement de texte. Vous pouvez diviser le gros INSERT déclaration contenue là-dedans en plusieurs morceaux. La syntaxe est assez évidente.

  1. utiliser plusieurs instructions d'insertion distinctes au lieu d'une seule grosse

Selon l'outil que vous utilisez pour créer ce fichier de vidage que vous essayez d'importer, vous avez maintenant la possibilité de créer le vidage de sorte qu'il utilise de nombreux INSERT distincts. instructions (une pour chaque ligne) au lieu d'une seule grande, combinée. mysqldump par exemple offre le --skip-extended-insert drapeau pour cela. Avec un tel fichier de vidage, il est trivial de diviser l'importation en plusieurs petits morceaux en divisant simplement le fichier.

  1. contourner complètement php pour l'importation

Si vous avez un accès direct à votre serveur de base de données (MySQL dans ce cas), alors vous pouvez simplement interagir directement avec lui au lieu d'utiliser le phpMyAdmin outil entre les deux. Vous pouvez simplement charger votre fichier de vidage directement au moyen de MySQLs source commande. De cette façon, vous êtes complètement indépendant des limitations de php.