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 COMMITTEDOutputAvoids dirty readsPostgreSQL default
Erreurs courantes
- Low isolation levels cause non-repeatable/phantom reads
- Choose the isolation level per business needs
Termes associés
ACID
ACID désigne les quatre propriétés des transactions relationnelles : atomicité (tout ou rien), cohérence (contraintes maintenues), isolation (concurrence sans interférence), durabilité (persistance après commit). GLOSSAIRE
Transaction
Une transaction est un groupe d'opérations exécutées comme une unité logique unique satisfaisant ACID — tout ou rien. GLOSSAIRE