Sobes.tech
Senior

Quels niveaux d'isolation des transactions PostgreSQL connais-tu?

sobes.tech IA

Réponse de l'IA

Dans PostgreSQL, il existe quatre niveaux d'isolation des transactions définis par la norme SQL :

  1. Read Uncommitted — le niveau d'isolation le plus bas. Permet de lire des données qui ne sont pas encore validées (lectures sales). En PostgreSQL, il se comporte en réalité comme Read Committed, car les lectures sales ne sont pas supportées.

  2. Read Committed — niveau par défaut. La transaction ne voit que les données qui ont été validées au moment de chaque requête individuelle. Des modifications par d'autres transactions peuvent apparaître entre les requêtes dans la même transaction.

  3. Repeatable Read — la transaction voit une image instantanée des données au moment de son début. Toutes les requêtes dans la transaction voient les mêmes données, même si d'autres transactions les modifient et les valident. Empêche les lectures non répétables, mais autorise les lectures fantômes.

  4. Serializable — le niveau d'isolation le plus strict. Garantit une sérialisation complète des transactions, évite les lectures fantômes et assure un comportement équivalent à une exécution séquentielle.

Exemple de configuration du niveau d'isolation :

BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- Opérations SQL
COMMIT;