Zwei Fälle:1. Mit Index 2. Ohne Index Voraussetzungen:Methode: Verwenden Sie die Befehlszeile zur Simulation 1. Da MySQL Transaktionen standardmäßig automatisch festschreibt, müssen Sie zunächst prüfen, ob Ihre aktuelle Datenbank Transaktionen automatisch festgeschrieben hat. Befehl: select @@autocommit; Die Ergebnisse sind wie folgt: +--------------+ | @@autocommit | +--------------+ | 0 | +--------------+ Wenn der Wert 1 ist, führen Sie den Befehl aus: set autocommit = 0; set, um automatisches Commit zu deaktivieren 2. Das aktuelle Datenbanktabellenformat ist wie folgt tb_user | ERSTELLE TABELLE `tb_user` ( `id` bigint(20) NICHT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, `Telefon` varchar(11) DEFAULT NULL, `Operator` varchar(32) DEFAULT NULL, `gmt_create` Datum/Uhrzeit DEFAULT NULL, `gmt_modified` Datum/Uhrzeit DEFAULT NULL, PRIMÄRSCHLÜSSEL (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 Offensichtlich habe ich außer dem Primärschlüssel keine Indizes hinzugefügt. Praxisbeispiel:1. Kein Index Führen Sie den Befehl „begin“ aus, um die Transaktion zu starten, und führen Sie dann den Befehl „update tb_user set phone=11 where name="c1"“ aus, um die Änderungen vorzunehmen. Bestätigen Sie die Transaktion noch nicht. Öffnen Sie ein weiteres Fenster und führen Sie den Befehl direkt aus: update tb_user set phone=22 where name="c2"; Sie werden feststellen, dass der Befehl hängen bleibt. Wenn die vorherige Transaktion jedoch per Commit übermittelt wird, wird der Befehl normal ausgeführt und beendet, was darauf hinweist, dass die Tabelle gesperrt ist. 2. Fügen Sie dem Namensfeld einen Index hinzu Erstellen Sie den Index Index_Name für tb_user(Name); Setzen Sie dann den Vorgang wie in Schritt 1 fort, d. h. öffnen Sie eine Transaktion und führen Sie update tb_user set phone=11 where name="c1" aus; führen Sie noch kein Commit aus Führen Sie dann einen weiteren Befehl aus: update tb_user set phone=22 where name="c2"; und Sie werden feststellen, dass der Befehl nicht hängen bleibt, was darauf hinweist, dass die Tabelle nicht gesperrt ist. Wenn jedoch ein weiteres Update „tb_user set phone=22 where name="c1";“ dieselbe Zeile aktualisiert, bedeutet dies, dass die Zeile gesperrt ist. 3. Zusammenfassung Wenn kein Index vorhanden ist, wird die Tabelle durch das Update gesperrt. Wenn ein Index hinzugefügt wird, wird die Zeile gesperrt. Dies ist das Ende dieses Artikels darüber, ob Updates in MySQL-Transaktionen die Tabelle sperren. Weitere Informationen zum Sperren der Tabelle durch MySQL-Transaktionsupdates finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: HTML-Auszeichnungssprache - Tabellen-Tag
>>: JS+Canvas zeichnet ein Glücksrad
Benutzer virtueller Maschinen richten normalerwei...
Inhaltsverzeichnis 1. MySQL-Datenstruktur 2. Die ...
Es gibt zwei Möglichkeiten, Daten in MySQL zu lös...
1. Installation von MySQL 1. Öffnen Sie die herun...
Einführung: Im Vergleich zu herkömmlichen Bildver...
In diesem Artikel erfahren Sie, wie Sie das Probl...
Im DOM-Ereignismodell von JavaScript werden Ereig...
In diesem Artikel wird der spezifische Code von N...
Wenn dieselbe Funktion und derselbe HTML-Code meh...
In diesem Artikel wird hauptsächlich die einfache...
Mehrere Teile von Compose befassen sich in irgend...
Inhaltsverzeichnis Installieren Sie den Vim-Plugi...
Bei einigen Systemen mit großen Datenmengen beste...
Inhaltsverzeichnis JS liest Datei FileReader doku...
Vorwort: Vue3 ist schon seit langem verfügbar. Vo...