web-dev-qa-db-fra.com

MySQL: Safe to kill transaction bloquée dans "En attente du verrouillage des métadonnées de table"

Bonjour/après-midi/nuit.

J'ai essayé d'ajouter une colonne à une table avec quelques bons millions de lignes. Voici la requête complète:

alter table date_tasks_mark add column noDuplicate int unsigned not null default 0

Cependant, il semble être bloqué.

| 28893 | root         | localhost | database_name   | Query   | 10668 | Waiting for table metadata lock | alter table date_tasks_marks add column noDuplicate int unsigned not null default 0

Est-il sûr pour moi de tuer la requête ou cela corrompra-t-il ma table (elle est dans cet état depuis environ une demi-heure)?

5
M Hornbacher

Oui, c'est sûr. Votre alter table la requête n'a même pas commencé.
Cependant, le waiting for table metadata lock signifie qu'il y a une autre transaction opérant sur cette table pendant longtemps et que vous devriez plutôt la tuer pour résoudre le problème. (en savoir plus ici: 8.11.4 Verrouillage des métadonnées )

Pour trouver cette transaction, ce fil est probablement utile: Comment puis-je trouver quelle transaction provoque un état "En attente de verrouillage des métadonnées de table"?

6
tombom