Maison  >  Questions et réponses  >  le corps du texte

Existe-t-il un moyen d'améliorer les performances des importations MySQL qui ralentissent avec le temps ?

J'ai un énorme fichier mysqldump (~ 700 Go) et je souhaite le restaurer sur un autre serveur. Pour le premier Go, la vitesse d’importation est assez rapide, autour de Mo/s, mais après quelques Go de données, la vitesse chute entre 50 Ko/s et 200 Ko/s.

Les paramètres de mysqldump sont --skip-comments --no-create-info --no-autocommit --quick --extended-insert --insert-ignore --compress donc quelques améliorations de vitesse ont été apportées.

L'importation se fait pv /file.sql | 完成的mysql -u 用户 DB

J'ai également exécuté mysqltuner et amélioré certains de ses paramètres.

Je me demande : est-il courant qu'un mysqldump aussi volumineux ralentisse après un certain temps ? Ou y a-t-il quelque chose qui pourrait être encore amélioré ?

P粉969253139P粉969253139288 Il y a quelques jours503

répondre à tous(1)je répondrai

  • P粉201448898

    P粉2014488982024-01-06 08:18:50

    Lors de l'importation de grandes quantités de données, les fonctionnalités suivantes doivent être désactivées.

    1. Désactiver le déclencheur
    2. Désactiver l'indexation
    3. Désactiver les contraintes ou les contrôles
    4. Désactiver les clés étrangères

    Parce qu'à chaque fois que vous insérez, la base de données vérifiera la relation de l'enregistrement inséré dans d'autres tables. À mesure que la table s’agrandit, ce processus commence à ralentir. Lors de chaque insertion, la base de données effectue également des opérations d'insertion supplémentaires ou exécute des déclencheurs d'insertion dans les index de la table.

    De plus, comme les transactions dans MySQL sont faibles, vous devez faire en sorte que la validation ne fonctionne pas après chaque insertion, vous pouvez utiliser la commande commit, par exemple une fois tous les 10 000 enregistrements insérés.

    répondre
    0
  • Annulerrépondre