Communauté RSS DEV

Changements de schéma dans MySQL : Votre table sera-t-elle verrouillée ?

Le verrouillage au niveau de la table dans MySQL peut avoir un impact significatif sur les performances des systèmes métier, en particulier pour les grands ensembles de données. Lors de l'exécution d'une opération ALTER TABLE, MySQL verrouille la table par défaut, bloquant les autres transactions jusqu'à la fin de l'opération. Cela peut entraîner des retards de requête, des opérations d'écriture bloquées et des ralentissements du système. Cependant, dans les versions plus récentes de MySQL, l'ajout d'une colonne à une table en utilisant le moteur de stockage InnoDB ne verrouille pas nécessairement la table. MySQL 5.6 a introduit les opérations DDL en ligne, permettant certaines modifications de table d'être effectuées sans verrouiller la table. Dans MySQL 5.6, l'ajout d'une colonne est une opération en ligne qui peut utiliser ALGORITHM=INPLACE pour éviter le verrouillage complet de la table. MySQL 8.0 a encore optimisé les opérations DDL en ligne, permettant la plupart des opérations ALTER TABLE d'être effectuées sans verrouiller la table. MySQL 8.0 introduit des fonctionnalités telles que DDL atomique, mises à jour instantanées de métadonnées et mises à jour incrémentales de métadonnées pour réduire le temps de verrouillage de la table et améliorer les performances concurrentes. Malgré ces optimisations, il est toujours recommandé d'effectuer les opérations ALTER TABLE pendant les heures creuses pour minimiser l'impact sur les applications.
favicon
dev.to
Schema Changes in MySQL: Will Your Table Be Locked?
Image illustrant l'article : Changements de schéma dans MySQL : Votre table sera-t-elle verrouillée ?
Create attached notes ...