Was ist eine MySQL-Sperrtabelle?
Um MySQL unter Bedingungen hoher Parallelität besser zu optimieren, ist es notwendig, den Tabellensperrmechanismus zu verstehen, wenn MySQL-Abfragen aktualisiert werden.
MySQL verfügt über drei Sperrebenen: Seitenebene, Tabellenebene und Zeilenebene.
MyISAM- und MEMORY-Speicher-Engines verwenden Sperren auf Tabellenebene (Sperren auf Tabellenebene); die BDB-Speicher-Engine verwendet Sperren auf Seitenebene (
Sperren), unterstützt aber auch Tabellenebene Sperren; Die InnoDB-Speicher-Engine unterstützt sowohl Sperren auf Zeilenebene (Sperren auf Zeilenebene) als auch Sperren auf Tabellenebene, standardmäßig wird jedoch Sperren auf Zeilenebene verwendet.
Die Eigenschaften dieser drei Sperren in MySQL lassen sich grob wie folgt zusammenfassen:
Sperre auf Tabellenebene: geringer Overhead, schnelle Sperre; keine Deadlock-Wahrscheinlichkeit; höchste und niedrigste Parallelität.
Sperren auf Zeilenebene: Hoher Overhead, langsame Sperren; die Sperrgranularität ist am geringsten, die Wahrscheinlichkeit von Sperrenkonflikten ist am höchsten.
Seitensperre: Die Kosten und die Sperrzeit liegen zwischen Tabellensperren und Zeilensperren. Die Sperrgranularität liegt zwischen Tabellensperren und Zeilensperren, und die Parallelität ist durchschnittlich.
Wie kann das Problem der Tabellensperre gelöst werden? Wie entsperre ich die MySQL-Sperrtabelle?
1. Überprüfen Sie den Prozess, hauptsächlich um die ID des Prozesses zu finden, dessen Tabelle gesperrt ist
PROZESSLISTE ANZEIGEN;
Töte den Prozess Wer hat die Tabelle Prozess-ID entsperrt
KILL 10866;//Die folgende Nummer ist die ID des Prozesses
Das obige ist der detaillierte Inhalt vonSo entsperren Sie die MySQL-Sperrtabelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!