Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour efficacement une table contenant 120 millions d'enregistrements ?

Comment puis-je mettre à jour efficacement une table contenant 120 millions d'enregistrements ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-03 11:57:38280parcourir

How Can I Efficiently Update a Table with 120 Million Records?

Stratégies de mise à jour pour 120 millions d'enregistrements : une approche efficace

Mettre à jour une table contenant 120 millions d'enregistrements peut être une tâche ardue. L'approche de mise à jour par défaut peut épuiser les ressources et prendre une période prolongée. Pour surmonter ce défi, une méthode plus efficace consiste à utiliser une instruction SELECT pour remplir une table distincte.

Étapes pour remplir une table secondaire

Pour les tables sans index clusterisé et pendant une période sans DML simultané, les étapes suivantes peuvent être appliquées :

  1. Cloner le BaseTable : Utilisez une instruction SELECT pour créer un clone.BaseTable qui inclut les données de dbo.BaseTable et une nouvelle colonne INT définie sur -1.
  2. Rectifiez le clone : Recréez index, contraintes, etc., sur la table clone.
  3. Échanger les tables : Utiliser ALTER SCHEMA ... TRANSFER pour échanger les tables originales et clonées.
  4. Nettoyage : Supprimez l'ancienne table.

Pour les tables avec des index clusterisés ou d'autres complexités , un processus plus détaillé est requis :

Processus détaillé pour les Scénarios

  1. Recréer BaseTable : Cloner la table d'origine dans un schéma de clonage avec un index clusterisé, des colonnes d'identité, des colonnes calculées et la nouvelle colonne INT.
  2. Exclure les contraintes : Omettre les déclencheurs, les contraintes de clé étrangère, non clusterisées index et vérifiez les contraintes.
  3. Test d'insertion : Effectuez une petite opération d'insertion pour valider la fonctionnalité de la table clonée.
  4. Tronquer le clone : Effacez le table de clonage.
  5. Insertion groupée : Effectuez une insertion groupée dans la table de clonage dans mode de récupération simple ou journalisé en masse.
  6. Recréer les contraintes : Recréez toutes les contraintes, index et déclencheurs non clusterisés et vérifiez les contraintes un par un.
  7. Transfert de schéma : Déplacez la table clonée vers le schéma dbo et la table d'origine vers une sauvegarde schéma.
  8. Opération de True-Up :Le cas échéant, effectuez toutes les opérations de True-Up nécessaires.

Conclusion

En utilisant cette approche de sélection et de remplissage, il devient possible de mettre à jour efficacement de grandes tables. Cette méthode peut réduire considérablement le temps requis pour la mise à jour des tables, ce qui en fait une solution viable pour les tables comportant un nombre important d'enregistrements.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn