Ein häufiges Problem in MySQL besteht darin, dass der Fehler „Wartezeit bei Sperre überschritten; versuchen Sie, die Transaktion neu zu starten“ auftritt beim Versuch, einen Index für eine Tabelle zu ändern oder zu löschen. Dieser Fehler weist typischerweise auf eine hängengebliebene Transaktion innerhalb der Tabelle hin, die den Abschluss von Vorgängen verhindert.
Diagnose des Problems
Vermuten Sie eine hängengebliebene Transaktion, wenn eine Tabelle außergewöhnlich langsam auf Abfragen reagiert oder wenn das Löschen eines Index mit der oben genannten Fehlermeldung fehlschlägt.
Identifizieren des Feststeckens Thread
Um den Thread zu identifizieren, der für den Deadlock verantwortlich ist, führen Sie den folgenden Befehl in der MySQL-Befehlszeilenschnittstelle oder in phpMyAdmin aus:
SHOW PROCESSLIST;
Dieser Befehl zeigt eine Liste von Threads an. einschließlich ihrer IDs und Ausführungszeiten.
Termination the Stuck Thread
Sobald Sie den Thread identifiziert haben, der übermäßig viel Zeit in Anspruch nimmt, können Sie ihn entweder mit dem KILL-Befehl in der Befehlszeilenschnittstelle oder der Schaltfläche „Kill“ in phpMyAdmin beenden.
Um beispielsweise Thread-ID 115 zu beenden, verwenden Sie Folgendes:
KILL 115;
Diese Aktion beendet die Verbindung für diesen bestimmten Thread Thread.
Problem lösen
Nachdem Sie den feststeckenden Thread beendet haben, sollten Sie in der Lage sein:
Zusätzlich Tipps
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Wartezeit beim Sperren überschritten“ in einer eingefrorenen MySQL-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!