Úrovně izolace

Transakce a ošetření chyb v PostgreSQL

Jason Myers

Instructor

Souběžnost

  • Koordinace více operací probíhajících současně.
  • Přináší specifické problémy v rámci databáze.
  • Využívá pravidla zvaná úrovně izolace pro předvídatelné výsledky.
Transakce a ošetření chyb v PostgreSQL

Špinavé čtení

Špinavé čtení

Transakce a ošetření chyb v PostgreSQL

Neopakovatelné čtení

Neopakovatelné čtení

Transakce a ošetření chyb v PostgreSQL

Fantomové čtení

Fantomové čtení

Transakce a ošetření chyb v PostgreSQL

Anomálie serializace

Anomálie serializace

Transakce a ošetření chyb v PostgreSQL

Úrovně izolace

Úroveň izolace Špinavé čtení Neopakovatelné čtení Fantomové čtení Anomálie serializace
Read Uncommitted Chráněno (PostgreSQL) zranitelné zranitelné zranitelné
Read Committed Chráněno zranitelné zranitelné zranitelné
Repeatable Read Chráněno Chráněno Chráněno (PostgreSQL) zranitelné
Serializable Chráněno Chráněno Chráněno Chráněno
Transakce a ošetření chyb v PostgreSQL

Vliv úrovní izolace

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;

Výsledky příkazů

  • Výsledek prvního SELECT: 5
  • Výsledek druhého SELECT: 6
Transakce a ošetření chyb v PostgreSQL

Vliv úrovní izolace

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;

Výsledky příkazů

  • Výsledek prvního SELECT: 5
  • Výsledek druhého SELECT: 5
Transakce a ošetření chyb v PostgreSQL

Pojďme si procvičit!

Transakce a ošetření chyb v PostgreSQL

Preparing Video For Download...