Niveaux d'isolement

Transactions et gestion des erreurs dans PostgreSQL

Jason Myers

Instructor

Concurrence

  • Coordonner plusieurs opérations en même temps.
  • Provoque des enjeux propres aux bases de données.
  • S'appuie sur des règles appelées niveaux d'isolement pour clarifier les résultats.
Transactions et gestion des erreurs dans PostgreSQL

Lectures sales

Lecture sale

Transactions et gestion des erreurs dans PostgreSQL

Lecture non reproductible

Lecture non reproductible

Transactions et gestion des erreurs dans PostgreSQL

Lecture fantôme

Lecture fantôme

Transactions et gestion des erreurs dans PostgreSQL

Anomalie de sérialisation

Anomalie de sérialisation

Transactions et gestion des erreurs dans PostgreSQL

Niveaux d'isolement

Niveau d'isolement Lecture sale Lecture non reproductible Lecture fantôme Anomalie de sérialisation
Read Uncommitted Protégé (PostgreSQL) vulnérable vulnérable vulnérable
Read Committed Protégé vulnérable vulnérable vulnérable
Repeatable Read Protégé Protégé Protégé (PostgreSQL) vulnérable
Serializable Protégé Protégé Protégé Protégé
Transactions et gestion des erreurs dans PostgreSQL

Effets des niveaux d'isolement

START TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Résultats des instructions

  • Résultat du premier SELECT : 5
  • Résultat du deuxième SELECT : 6
Transactions et gestion des erreurs dans PostgreSQL

Effets des niveaux d'isolement

START TRANSACTION ISOLATION LEVEL SERIALIZABLE; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Résultats des instructions

  • Résultat du premier SELECT : 5
  • Résultat du deuxième SELECT : 5
Transactions et gestion des erreurs dans PostgreSQL

Passons à la pratique !

Transactions et gestion des erreurs dans PostgreSQL

Preparing Video For Download...