Maison > base de données > tutoriel mysql > Introduction au contenu du niveau d'isolation des transactions Mysql (lecture du commit)

Introduction au contenu du niveau d'isolation des transactions Mysql (lecture du commit)

不言
Libérer: 2019-01-09 10:55:05
avant
3868 Les gens l'ont consulté

Le contenu de cet article est une introduction au contenu du niveau d'isolation des transactions Mysql (lecture du commit). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Niveau d'isolation des transactions MySQL en lecture de validation

Afficher le niveau d'isolation des transactions MySQL
mysql> show variables like '%isolation%';
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| tx_isolation  | READ-COMMITTED |
+---------------+----------------+
1 row in set (0.00 sec)
Copier après la connexion

Vous pouvez voir que le niveau d'isolation des transactions actuel est READ-COMMITTED lecture de validation

Jetons un coup d'œil aux détails de l'isolation des transactions sous le niveau d'isolation actuel. Ouvrez deux terminaux de requête A et B.

Il y a un order tableau ci-dessous, les données initiales sont les suivantes

mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Copier après la connexion
Copier après la connexion
La première étape consiste à ouvrir la transaction en A et B
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
Copier après la connexion
La deuxième étape Interroger la valeur number dans deux terminaux >
  • La troisième étape consiste à modifier le

    en B à 2, mais ne pas valider la transaction

La quatrième étape consiste à interroger la valeur dans A
 mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Copier après la connexion
Copier après la connexion
  • On constate que la valeur dans A n'a pas été modifiée.

    La cinquième étape consiste à soumettre la transaction B et à interroger à nouveau la valeur dans A
 mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Copier après la connexion
Copier après la connexion
Bnumber
mysql> update `order` set number=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
Copier après la connexion
mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      1 |
+----+--------+
1 row in set (0.00 sec)
Copier après la connexion
Copier après la connexion
A
  • J'ai constaté que la valeur dans A a changé

    Sixième étape, validez la transaction dans A et interrogez les valeurs de A et B encore.
mysql> commit;
Query OK, 0 rows affected (0.01 sec)
Copier après la connexion
    A
mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
Copier après la connexion
Copier après la connexion
B
  • On constate que les valeurs​​dans A et B ont été modifiées à 2.

    Un schéma simple est donné ci-dessous
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)
Copier après la connexion
  • Nous pouvons voir que lorsque le niveau d'isolement de la transaction est
  • , lorsque la transaction dans B est validé, le résultat de la validation de la transaction B peut être lu même si A n'a pas validé. Cela résout le problème
.
mysql> select * from `order`;
+----+--------+
| id | number |
+----+--------+
| 13 |      2 |
+----+--------+
1 row in set (0.00 sec)
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
MySQL arrête le processus
Depuis 1970-01-01 08:00:00
0
0
0
Env中mysql
Depuis 1970-01-01 08:00:00
0
0
0
Erreur lors de l'installation de MySQL sous Linux
Depuis 1970-01-01 08:00:00
0
0
0
php - problème de surveillance MySQL
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal