Aller au contenu
uencoder

Isolation Level

Les niveaux d'isolation définissent la visibilité entre transactions concurrentes, de la lecture non validée au sérialisable ; des niveaux plus élevés donnent plus de cohérence mais moins de concurrence.

Objectif

Équilibrer performance concurrente et cohérence et choisir un niveau d'isolation approprié.

Mécanisme

Lecture non validée (lectures sales), lecture validée (lectures non répétables), lecture répétable (lectures fantômes), sérialisable (sans anomalie). Le MVCC réalise l'isolation d'instantané (entre lecture répétable et sérialisable). PostgreSQL vaut par défaut lecture validée ; MySQL InnoDB, lecture répétable.

Cas d’usage

  • Contrôle de cohérence des transactions concurrentes
  • Lecture validée pour éviter les lectures sales
  • Lecture répétable pour la cohérence des rapports
  • Sérialisable pour une forte cohérence

Exemples

  • entrée
    SET TRANSACTION ISOLATION LEVEL READ COMMITTED
    Output
    Avoids dirty reads

    PostgreSQL default

Erreurs courantes

Low isolation levels cause non-repeatable/phantom reads
Choose the isolation level per business needs

Termes associés

References