Isolatieniveaus

Transacties en foutafhandeling in PostgreSQL

Jason Myers

Instructor

Gelijktijdigheid

  • Coördineren van meerdere bewerkingen tegelijk.
  • Heeft unieke problemen in een database.
  • Gebruikt regels (isolatieniveaus) om uitkomsten voorspelbaar te maken.
Transacties en foutafhandeling in PostgreSQL

Dirty reads

Dirty read

Transacties en foutafhandeling in PostgreSQL

Nonrepeatable read

Nonrepeatable read

Transacties en foutafhandeling in PostgreSQL

Phantom read

Phantom read

Transacties en foutafhandeling in PostgreSQL

Serialisatie-anomalie

Serialisatie-anomalie

Transacties en foutafhandeling in PostgreSQL

Isolatieniveaus

Isolatieniveau Dirty read Nonrepeatable read Phantom read Serialisatie-anomalie
Read Uncommitted Beschermd (PostgreSQL) kwetsbaar kwetsbaar kwetsbaar
Read Committed Beschermd kwetsbaar kwetsbaar kwetsbaar
Repeatable Read Beschermd Beschermd Beschermd (PostgreSQL) kwetsbaar
Serializable Beschermd Beschermd Beschermd Beschermd
Transacties en foutafhandeling in PostgreSQL

Effecten van isolatieniveaus

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;

Uitvoer

  • Eerste SELECT-resultaat: 5
  • Tweede SELECT-resultaat: 6
Transacties en foutafhandeling in PostgreSQL

Effecten van isolatieniveaus

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;

Uitvoer

  • Eerste SELECT-resultaat: 5
  • Tweede SELECT-resultaat: 5
Transacties en foutafhandeling in PostgreSQL

Laten we oefenen!

Transacties en foutafhandeling in PostgreSQL

Preparing Video For Download...