Maison > Article > base de données > Comment créer un index sur une énorme table de production MySQL sans verrouiller la table ?
Problème :
Vous devez créer un index sur une table MySQL massive dans un environnement de production sans interrompre les opérations en cours.
Conventional Wisdom (2015) :
Dans les versions MySQL antérieures à 5.6, créer un index sur une La table MyISAM ou InnoDB bloque les opérations d'écriture.
Mises à jour de l'index en ligne dans MySQL 5.6 (2017) :
MySQL 5.6 et versions ultérieures prennent en charge les mises à jour d'index en ligne, vous permettant d'ajouter ou supprimez les index sans bloquer les lectures ou les écritures.
Mise à jour du schéma sans temps d'arrêt :
Si vous ne pouvez pas utiliser MySQL 5.6 ou version ultérieure, vous pouvez utiliser la méthode suivante pour mettre à jour votre schéma sans temps d'arrêt :
L'outil pt-online-schema-change de Percona :
Cet outil fournit une méthode alternative pour modifier le schéma de la table sans bloquer les opérations. Il crée une nouvelle table avec la structure souhaitée, apporte les modifications au schéma et copie progressivement les données de la table d'origine avant de la remplacer.
Amazon RDS :
Amazon RDS simplifie le processus en vous permettant de créer des réplicas en lecture, d'apporter des modifications au schéma sur un réplica, puis de promouvoir le réplica pour qu'il devienne le nouveau maître. Cette approche minimise les temps d'arrêt et simplifie le processus de basculement.
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!