Heim  >  Artikel  >  Datenbank  >  Was ist der Unterschied zwischen MySQL-Tabellensperre und Zeilensperre?

Was ist der Unterschied zwischen MySQL-Tabellensperre und Zeilensperre?

青灯夜游
青灯夜游Original
2019-05-07 17:11:466530Durchsuche

Mysql verfügt über viele solcher Sperrmechanismen, wie z. B. Zeilensperren, Tabellensperren, Lesesperren, Schreibsperren usw., die alle vor Operationen gesperrt werden. Diese Sperren werden zusammenfassend als pessimistische Sperren bezeichnet. Der folgende Artikel wird Ihnen helfen, die Sperren in MySQL zu verstehen und Ihnen den Unterschied zwischen Tabellensperren und Zeilensperren vorzustellen.

Was ist der Unterschied zwischen MySQL-Tabellensperre und Zeilensperre?

Sperre ist ein Mechanismus für Computer, um den gleichzeitigen Zugriff auf eine Ressource durch mehrere Prozesse oder Threads zu koordinieren. In einer Datenbank sind Daten neben dem traditionellen Wettbewerb um Rechenressourcen (wie CPU, RAM, I/O usw.) auch eine Ressource, die von vielen Benutzern gemeinsam genutzt wird. Die Gewährleistung der Konsistenz und Effektivität des gleichzeitigen Zugriffs auf Daten ist ein Problem, das alle Datenbanken lösen müssen. Sperrkonflikte sind ebenfalls ein wichtiger Faktor, der sich auf die Leistung des gleichzeitigen Zugriffs auf Datenbanken auswirkt. Aus dieser Sicht sind Sperren für Datenbanken besonders wichtig und komplex.

Der Unterschied zwischen Tabellensperre und Zeilensperre in MySQL

Zeilensperre

Eigenschaften: Sperren Die Granularität ist gering, die Wahrscheinlichkeit von Sperrenkonflikten ist gering und die Fähigkeit zur Bewältigung von Parallelität ist hoch. Der Overhead ist hoch, das Sperren ist langsam und es kann zu Deadlocks kommen

Sperrmethode: automatische Sperre. Bei UPDATE-, DELETE- und INSERT-Anweisungen fügt InnoDB automatisch exklusive Sperren zu den beteiligten Datensätzen hinzu. Bei normalen SELECT-Anweisungen fügt InnoDB keine Sperren hinzu.

Tabellensperre

Merkmale: geringer Overhead, schnelles Sperren, kein Deadlock; große Sperrgranularität, hohe Wahrscheinlichkeit eines Sperrkonflikts, geringe Leistung bei hoher Parallelität

Sperrmethode: Automatische Verriegelung. Abfrageoperationen (SELECT) fügen automatisch Lesesperren für alle beteiligten Tabellen hinzu, und Aktualisierungsoperationen (UPDATE, DELETE, INSERT) fügen automatisch Schreibsperren für die beteiligten Tabellen hinzu.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen MySQL-Tabellensperre und Zeilensperre?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Kann Android MySQL verwenden?Nächster Artikel:Kann Android MySQL verwenden?