Maison  >  Article  >  base de données  >  Quels sont les quatre niveaux d’isolement des transactions ?

Quels sont les quatre niveaux d’isolement des transactions ?

王林
王林original
2020-07-01 14:52:3714986parcourir

Les quatre niveaux d'isolement des transactions sont : 1. Lire le contenu non validé (Lecture non validée) ; 2. Lire le contenu soumis (Lecture validée) 3. Lecture répétable (Lecture répétable) ;

Quels sont les quatre niveaux d’isolement des transactions ?

Quatre niveaux d'isolement des transactions :

(apprentissage recommandé : tutoriel mysql)

1. Lire non validé -- Lire le contenu non validé

  • Une transaction peut afficher le contenu non validé

  • Problèmes de lecture sales se produisent souvent (lecture sale : lecture du contenu non validé (exécuté) d'autres transactions)

Ouvrir deux transactions A et B (croisement de transaction A, B) démarrer la transaction

A la transaction interroge uniquement le contenu de la table de données, la transaction B effectue des opérations d'ajout, de suppression et de modification mais ne valide pas (soumet)

Une transaction peut toujours interroger les données de la table Change (interroger le contenu non validé - lecture sale )

2. Lire engagé - lire le contenu soumis

  • Une seule transaction Possibilité d'afficher le contenu soumis

  • Des problèmes de lecture non répétables surviennent souvent (lecture non répétable : l'exécution de la même instruction select dans la même transaction donne des résultats différents)

Ouvrez deux transactions A et B pour la même table de données (les transactions A et B se croisent) démarre la transaction

Une transaction interroge uniquement le contenu de la table de données, et la transaction B effectue des opérations d'ajout, de suppression et de modification mais ne s'engage pas (Soumettre)

La transaction A ne peut pas interroger les données modifiées dans la table

La transaction B soumet

Les données modifiées trouvées par A (A interroge deux fois, ce qui entraîne un résultat différent - lecture non reproductible)

3. Lecture répétable - relisible

  • Lorsque plusieurs instances de la même transaction lisent des données simultanément Obtenez le même résultat

  • Le niveau d'isolement des transactions par défaut de MySQL

  • provoque souvent des problèmes de lecture fantôme (lecture fantôme : résultats différents lors de la lecture plusieurs fois) (ligne fantôme))

Ouvrir deux transactions A et B pour la même table de données (transactions A et B croisées) démarrer la transaction

Une transaction interroge uniquement le contenu de la table de données, la transaction B effectue des opérations d'ajout, de suppression et de modification mais ne valide pas (soumet)

Une transaction ne peut pas interroger le contenu des modifications de données dans la table

La transaction B s'engage

Une requête de transaction Le contenu des modifications de données dans la table est introuvable

A Soumettre

A Les modifications apportées aux données dans la table peuvent être interrogées

4. Sérialisable -- Sérialisable

  • Le niveau d'isolement le plus élevé

  • Ajoutez un verrou partagé à la transaction, et il ne peut y avoir qu'une seule opération de transaction en même temps pour résoudre le problème de lecture fantôme

  • Provoquera beaucoup de problèmes de délai d'attente et de conflit de verrouillage

Opération ouverte A

Impossible d'ajouter ou de supprimer cette opération lors de l'ouverture de la transaction B

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!

Déclaration:
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