Lorsqu'une instruction DDL est exécutée, le verrou d'écriture des métadonnées MDL sera automatiquement ajouté à la table et le verrou ne sera pas libéré tant que la transaction n'est pas validée. Le but de ce verrou est de protéger l'intégrité de la structure de la table et la cohérence des métadonnées.
L'environnement de production est illustré dans la figure ci-dessous : la session A ouvre une transaction et exécute DQL
À ce stade, la session B doit ajouter des index de texte intégral aux deux champs du table
Après l'exécution, il a été constaté que le maître était bloqué
Vérifiez la liste des processus associés et constatez qu'il attendait d'obtenir le verrouillage des métadonnées mdl
select * from information_schema.processlist where info like '%alter table `bas_business_type_text` %'
En regardant le situation de verrouillage de la table, vous pouvez voir que les verrous en lecture et en écriture s'excluent mutuellement
SELECT * FROM sys.schema_table_lock_waits
Exécutez kill 11 selon les invites
Vous pouvez voir que la session B a été exécutée avec succès
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!