Maison  >  Article  >  base de données  >  Comment identifier la transaction contenant le « En attente du verrouillage des métadonnées de la table » dans MySQL ?

Comment identifier la transaction contenant le « En attente du verrouillage des métadonnées de la table » dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 01:45:02151parcourir

How to Identify the Transaction Holding the

Localisation de la transaction provoquant l'état « En attente du verrouillage des métadonnées de la table »

Dans MySQL, rencontre d'un message « En attente du verrouillage des métadonnées de la table » pendant Les opérations DDL indiquent un verrou détenu par une autre transaction. Pour déterminer la transaction coupable, envisagez les méthodes suivantes :

MySQL Version < 5.7.3

  • SHOW ENGINE INNODB STATUS G : Cette commande affiche la section "TRANSACTIONS", répertoriant les transactions ouvertes.

Tableaux INFORMATION_SCHEMA

  • SELECT * FROM INNODB_LOCK_WAITS : Récupère des informations sur toutes les attentes de verrouillage.
  • SELECT * FROM INNODB_LOCKS WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID FROM INNODB_LOCK_WAITS) : Identifie les transactions bloquantes.
  • SELECT * FROM INNODB_LOCKS INNER JOIN INNODB_LOCK_WAITS ON (INNODB_LOCKS.LOCK_TRX_ID = INNODB_LOCK_WAITS.BLOCKING_TRX_ID) : Répertorie les mêmes informations que le requête précédente.
  • SELECT * FROM INNODB_LOCKS WHERE LOCK_TABLE = db_name.table_name: Localise les verrous sur une table spécifique.
  • SELECT TRX_ID, TRX_REQUESTED_LOCK_ID, TRX_MYSQL_THREAD_ID, TRX_QUERY FROM INNODB_TRX WHERE TRX_STATE = 'LOCK WAIT' : Répertorie les transactions en attente de verrous.

Référence :

  • Dépannage MySQL : que faire Faire lorsque les requêtes ne fonctionnent pas, Chapitre 6 - Page 96

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