Heim > Datenbank > MySQL-Tutorial > Hauptteil

Einführung in den Inhalt der MySQL-Transaktionsisolationsstufe (Read-Commit)

不言
Freigeben: 2019-01-09 10:55:05
nach vorne
3724 Leute haben es durchsucht

Der Inhalt dieses Artikels ist eine Einführung in den Inhalt der MySQL-Transaktionsisolationsstufe (Read Commit). Ich hoffe, dass er für Sie hilfreich ist.

MySQL-Transaktionsisolationsstufe Lese-Commit

MySQL-Transaktionsisolationsstufe
mysql> show variables like '%isolation%';
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| tx_isolation  | READ-COMMITTED |
+---------------+----------------+
1 row in set (0.00 sec)
Nach dem Login kopieren
anzeigen

Sie können sehen, dass die aktuelle Transaktionsisolationsstufe READ-COMMITTEDLese-Commit ist

Siehe unten Um die Transaktionsisolationsdetails unter der aktuellen Isolationsstufe anzuzeigen, öffnen Sie zwei Abfrageterminals A und B.

Es gibt eine order Tabelle unten, die Anfangsdaten lauten wie folgt

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren
Der erste Schritt besteht darin, die Transaktion sowohl in A als auch in B zu öffnen
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
Nach dem Login kopieren
Der zweite Der Schritt besteht darin, den numberWert der beiden Terminals in
  • A

 mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren
  • B

 mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren
Der dritte Schritt besteht darin, das
in B auf 2 zu ändern, aber die Transaktion nicht festzuschreibennumber
mysql> update `order` set number=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
Nach dem Login kopieren
Der vierte Schritt besteht darin, den Wert in A abzufragen
mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren
und stellen Sie fest, dass der Wert in A nicht geändert wurde.
Der fünfte Schritt besteht darin, Transaktion B einzureichen und den Wert in A erneut abzufragen
  • B

mysql> commit;
Query OK, 0 rows affected (0.01 sec)
Nach dem Login kopieren
  • A

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren
hat festgestellt, dass sich der Wert in A geändert hat
Der sechste Schritt besteht darin, die Transaktion in A einzureichen und die Werte von A und abzufragen B wieder.
  • A

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren
  • B

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren
Nach dem Login kopieren
A,B gefunden Die Werte in wurden alle auf 2 geändert.
Das Folgende ist ein einfaches Diagramm

Einführung in den Inhalt der MySQL-Transaktionsisolationsstufe (Read-Commit)

Wir können sehen, dass, wenn die Transaktionsisolationsstufe
ist, wenn die Transaktion Wenn B festgeschrieben wird, kann das Ergebnis der Festschreibung der B-Transaktion gelesen werden, auch wenn A nicht festgeschrieben wurde. Dies löst das 读已提交-Problem. 脏读

Das obige ist der detaillierte Inhalt vonEinführung in den Inhalt der MySQL-Transaktionsisolationsstufe (Read-Commit). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!