Maison >base de données >tutoriel mysql >Quels sont les quatre niveaux d'isolement des transactions ?
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) ;
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!