Wenn eine DDL-Anweisung ausgeführt wird, wird die MDL-Metadaten-Schreibsperre automatisch zur Tabelle hinzugefügt und die Sperre wird erst aufgehoben, wenn die Transaktion festgeschrieben wird. Der Zweck dieser Sperre besteht darin, die Integrität der Tabellenstruktur und die Konsistenz der Metadaten zu schützen.
Die Produktionsumgebung ist in der folgenden Abbildung dargestellt: Sitzung A öffnet eine Transaktion und führt DQL aus
Zu diesem Zeitpunkt muss Sitzung B Volltextindizes zu den beiden Feldern hinzufügen Tabelle
Nach der Ausführung wurde festgestellt, dass der Master feststeckt
Überprüfen Sie die zugehörige Prozessliste und stellen Sie fest, dass er auf den Erhalt der MDL-Metadatensperre gewartet hat
select * from information_schema.processlist where info like '%alter table `bas_business_type_text` %'
Sehen Sie sich das an In der Tabellensperrensituation können Sie sehen, dass sich die Lese- und Schreibsperren gegenseitig ausschließen.
SELECT * FROM sys.schema_table_lock_waits
Das obige ist der detaillierte Inhalt vonSo lösen Sie die Ausnahme „Waiting for table metadata lock' in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!