Existe-t-il un moyen d'améliorer les performances des importations MySQL qui ralentissent avec le temps ?
P粉969253139
P粉969253139 2024-01-05 09:41:52
0
1
562

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粉969253139
P粉969253139

répondre à tous(1)
P粉201448898

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal