Sobes.tech
Middle

Quels sont les types d'isolation des transactions?

sobes.tech IA

Réponse de l'IA

L’isolation des transactions détermine dans quelle mesure une transaction peut voir les modifications intermédiaires d’autres transactions s’exécutant en parallèle.

Le standard SQL définit quatre niveaux d’isolation :

  1. Read Uncommitted (Lecture non validée) : Le niveau le plus bas. La transaction peut lire des modifications non validées d’autres transactions (lecture sale).
  2. Read Committed (Lecture validée) : La transaction ne peut lire que des données qui ont été validées par d’autres transactions. Évite la "lecture sale".
  3. Repeatable Read (Lecture répétable) : La transaction garantit que les données lues pendant la transaction ne changeront pas lors de lectures ultérieures. Évite la "lecture sale" et la "lecture non répétable". Des "fantômes" peuvent apparaître.
  4. Serializable (Sérialisable) : Le niveau d’isolation le plus élevé. Garantit que les transactions parallèles s’exécutent comme si elles étaient séquentielles. Évite tous les phénomènes indésirables : "lecture sale", "lecture non répétable" et "fantômes".

Phénomènes indésirables lors de l’exécution parallèle des transactions :

  • Dirty Read (Lecture sale) : La transaction A lit des données modifiées par la transaction B qui ne sont pas encore validées. Si la transaction B annule ses modifications, la transaction A travaillera avec des données incorrectes.
  • Non-repeatable Read (Lecture non répétable) : La transaction A lit deux fois les mêmes données, mais entre les lectures, la transaction B valide une modification. La transaction A obtient alors des valeurs différentes.
  • Phantom Read (Lecture de fantômes) : La transaction A exécute une requête qui retourne un ensemble de lignes. La transaction B insère ou supprime des lignes correspondant aux critères de la requête A. Lors de la réexécution, la transaction A obtient un ensemble différent de lignes.

Tableau récapitulatif des phénomènes indésirables par niveaux d’isolation :

Niveau d’isolation Lecture sale Lecture non répétable Fantômes
Read Uncommitted Oui Oui Oui
Read Committed Non Oui Oui
Repeatable Read Non Non Oui
Serializable Non Non Non

Le choix du niveau d’isolation influence la performance et la correction du fonctionnement de l’application. Plus le niveau d’isolation est élevé, plus les coûts supplémentaires sont importants.