Maison  >  Article  >  base de données  >  Qu'est-ce que la lecture sale ?

Qu'est-ce que la lecture sale ?

Guanhui
Guanhuioriginal
2020-06-01 16:12:256787parcourir

Qu'est-ce que la lecture sale ?

Qu'est-ce qu'une sale lecture ?

Une lecture sale, également appelée lecture de données invalides, signifie que lors de l'accès à la base de données, la transaction T1 modifie une certaine valeur, puis la transaction T2 lit la valeur, puis T1 annule la modification pour certains raison. La modification de cette valeur rend les données lues par T2 invalides. Il est à noter que la lecture sale est généralement destinée aux opérations de mise à jour.

Solution

La base de données MySQL définit quatre niveaux d'isolement :

  • sérialisable : peut évitez les lectures sales, les lectures non répétables et les lectures virtuelles.

  • lecture répétable : peut éviter les lectures sales et les lectures non répétables.

  • lecture validée : les lectures sales peuvent être évitées.

  • lire non engagé : le niveau le plus bas, cela arrivera.

Remarque : Le niveau d'isolement d'une transaction est limité par la base de données, et les niveaux d'isolement pris en charge par les différentes bases de données ne sont pas nécessairement les mêmes

Lecture sale : Modifier Lors de l'ajout d'un verrou exclusif, il ne sera pas libéré tant que la transaction n'est pas validée. Après avoir ajouté un verrou partagé lors de la lecture (afin que les autres transactions ne modifient pas les données pendant que la transaction 1 lit les données), aucune transaction n'est effectuée. autorisé à opérer sur les données. S'il y a une opération de mise à jour dans la transaction 1, elle sera convertie en un verrou exclusif et les autres transactions n'auront pas le droit de participer à la lecture et à l'écriture. problèmes de lecture

Mais lorsque la transaction 1 lit les données, il est possible que d'autres transactions aient également lu les données. Une fois la lecture terminée, le verrou partagé est libéré. ​​À ce moment, la transaction 1 modifie les données. et valide la transaction après la modification. Lorsque d'autres transactions lisent à nouveau les données et constatent que les données sont incohérentes, une erreur non répétable se produira, cela ne peut donc pas éviter des problèmes de lecture non répétables

Quand. En exécutant différents niveaux d'isolement, divers problèmes peuvent survenir. Elles sont résumées ci-dessous et données en exemples :

Une lecture sale se produit lorsqu'une transaction A lit des données qui ont été modifiées par une autre transaction B mais qui n'ont pas encore été validées. Si B revient en arrière, la transaction A lit des données invalides. Ceci est similaire à une lecture non répétable, mais la deuxième transaction n'a pas besoin d'être validée.


Tutoriels recommandés : "Tutoriel PHP" "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!

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