8
votes

La console MySQL ralentit sur l'importation d'énormes fichiers SQL

Mon importation de SQL via la console MySQL est plutôt lente et, comme l'augmentation de notre fichier SQL augmente chaque jour, j'aimerais savoir s'il existe des alternatives sur la manière d'importer un fichier SQL plus rapidement.

Changer à Oracle ou d'autres systèmes n'est pas une option, la configuration doit rester identique.

Actuellement, le fichier SQL est: 1,5 Go. Je suis sur wamp avec Apache 2.2.14, PHP 5.2.11 et MySQL 5.1.41.

Peut-être que le problème est ici, l'importation est effectuée par un simple: xxx

toute suggestion?


3 commentaires

Utilisez-vous MySQLIMPort ou charger des données infilières?


C'est quelque chose qui doit être placé dans le SQL si je suis correct, ce n'est pas possible, car vous ne pouvez pas modifier un fichier SQL de 1,4 Go dans n'importe quel éditeur, et cela provient de la source externe.


Cela peut aider quelqu'un: d'abord redémarrer votre ordinateur, puis désactiver vos traqueurs d'antivirus / pare-feu / de bande passante + tout autre programme que vous n'avez pas besoin de courir. Mais invalidant ces deux choses que j'ai augmenté la vitesse comme 6x.


4 Réponses :


0
votes

Je ne suis pas sûr que cela résoudra votre problème, car je ne suis pas sûr que le goulot d'étranglement est ... Cependant, j'ai été vraiment impressionné par le libre TOAD pour MySQL outil en tant que console de gestion MySQL de remplacement. Il a d'excellents outils d'importation et est généralement de mieux imo que la console de gestion MySQL standard.


1 commentaires

Quelqu'un d'autre a l'expérience du crapaud sur cette question avec d'énormes datafiles?



5
votes

Avoir des index activés pendant l'importation ralentira votre serveur à un crawl. Alter Tableau Nom Désactiver les touches ; et en utilisant .. Activer les touches avant et après l'importation, améliorera la vitesse d'importation, mais prendra du temps pour recréer des index. Il pourrait donc ne pas être un grand gain de vitesse après tout.

Aussi, peut-être utiliser des tables MyISAM (contrairement à InnoDB avec des options d'intégrité référentielle) donne généralement de meilleures performances, car il n'y a pas d'intégrité référentielle aérienne impliquée.

Personnellement, je n'utilise pas l'instruction d'importation de la console MySQL, mais importez des fichiers SQL à l'aide de mysql -uuser -pass dbname , et ça fonctionne bien pour moi.

J'espère que cela aide.


3 commentaires

Pensez à utiliser la commande mysqlimport. Il faudra un fichier plat contenant des données dans un format à tabulation ou quelque chose d'autre, et l'importait directement dans le tableau, plus rapide que d'exécuter les requêtes SQL.


Voir dev.mysql.com/doc/refman/5.0/fr/mysqlimport .html pour info sur la commande mysqlimport, si vous ne le connaissez pas.


Par défaut, lors de l'exportation de tables MySQL Workbench entoure Insérer des instructions pour chaque table par Désactiver les touches; ...; Activer les touches .



6
votes

Essayez ces http: // dev.mysql.com/doc/refman/5.5/fr/optimizing-innodb-bulk-data-loading.html

C'est peut-être une question d'autocommande, tournez-la alors voir ce qui se passe. xxx


0 commentaires

3
votes

La commutation automatique de commutation est la première d'une série de recommandations indiquées dans Chargement des données en vrac pour les tables d'innoDB pour accélérer les opérations de restauration pour MySQL.

au lieu de changer d'autocommande manuellement au moment de la restauration, vous pouvez déjà jeter vos données MySQL d'une manière qui inclut tout déclarations nécessaires dans votre fichier SQL.

Le paramètre de ligne de commande pour MySqldump est - no-autocommit . Vous pouvez également envisager d'ajouter - opt qui définit une combinaison d'autres paramètres pour accélérer les opérations de restauration.

Voici un exemple pour une ligne de commande MySqldump complète que je l'utilise , contenant - no-autocommit et - opt : xxx

pour plus de détails sur ces paramètres Voir le référence de mysqldump


0 commentaires