Maison > base de données > tutoriel mysql > le corps du texte

Quatre niveaux d'isolement dans les transactions MySQL

Guanhui
Libérer: 2020-05-01 11:41:10
avant
2285 Les gens l'ont consulté

1. Quatre caractéristiques majeures des transactions

Atomicité : Une fois la transaction lancée, toutes les opérations sont soit terminées, soit non terminées, et il est impossible de stagner au milieu. Si une erreur se produit lors de l'exécution de la transaction, elle sera rétablie à l'état avant le début de la transaction et toutes les opérations se dérouleront comme si elles ne s'étaient pas produites.

Cohérence : les contraintes d'intégrité de la base de données ne sont pas violées avant et après le début et la fin de la transaction.

Isolement : une seule transaction est autorisée à demander les mêmes données en même temps, et les différentes transactions n'interfèrent pas les unes avec les autres.

Durabilité : une fois la transaction terminée, toutes les mises à jour de la base de données par la transaction seront enregistrées dans la base de données et ne pourront pas être annulées.

2. Problèmes de concurrence des transactions

Lecture sale : la transaction A lit les données mises à jour par la transaction B, puis B annule l'opération, puis A lit Les données sont données sales

Lecture non répétable : (La transaction A lit les mêmes données plusieurs fois, et la transaction B met à jour et valide les données lors des multiples lectures de la transaction A, ce qui entraîne la lecture de la transaction A plusieurs fois. Lors de la lecture du mêmes données, les résultats sont incohérents. ) (Point clé : modification des données)

Lecture fantôme : l'administrateur système A a modifié les notes de tous les élèves de la base de données des notes spécifiques aux notes ABCDE, mais l'administrateur système B a changé At cette fois, un enregistrement avec un score spécifique a été inséré. Lorsque l'administrateur système A a terminé la modification, il a constaté qu'il y avait encore un enregistrement qui n'avait pas été modifié. C'était comme une hallucination. (Point clé : ajout ou suppression de données)

Résumé : La lecture non répétable et la lecture fantôme se confondent facilement. La lecture non répétable se concentre sur la modification, et la lecture fantôme se concentre sur l'ajout ou la suppression. Pour résoudre le problème de lecture non répétable, il vous suffit de verrouiller les lignes qui remplissent les conditions. Pour résoudre le problème de lecture fantôme, vous devez verrouiller la table

3. niveau

Lecture non validée (READ UNCOMMITED) (Les données non validées peuvent être lues, lecture sale, ces données sont appelées données sales)

READ COMMITED (Les données validées peuvent être lues, non- lecture répétable)

Lecture répétable (RePEATABLE READ) Les données vues lors de l'exécution d'une transaction sont toujours cohérentes avec les données vues au démarrage de la transaction. Bien entendu, sous le niveau d’isolement de lecture reproductible, les modifications non validées sont également invisibles pour les autres transactions.

SÉRIALISABLE (les opérations de lecture acquerront implicitement des verrous partagés, ce qui peut assurer une exclusion mutuelle entre les différentes transactions, table de verrouillage, n'y pensez pas, les défauts sont également évidents, voir la table de verrouillage Vous comprendrez, efficacité problèmes)

Tutoriel recommandé : "Tutoriel MySQL"

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:
source:learnku.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal