Poziomy izolacji

Transakcje i obsługa błędów w PostgreSQL

Jason Myers

Instructor

Współbieżność

  • Zarządzanie koordynacją wielu operacji wykonywanych jednocześnie.
  • Wiąże się z unikalnym zestawem problemów w bazie danych.
  • Wykorzystuje reguły zwane poziomami izolacji, aby ułatwić przewidywanie wyników.
Transakcje i obsługa błędów w PostgreSQL

Brudny odczyt

Brudny odczyt

Transakcje i obsługa błędów w PostgreSQL

Niepowtarzalny odczyt

Niepowtarzalny odczyt

Transakcje i obsługa błędów w PostgreSQL

Fantomowy odczyt

Fantomowy odczyt

Transakcje i obsługa błędów w PostgreSQL

Anomalia serializacji

Anomalia serializacji

Transakcje i obsługa błędów w PostgreSQL

Poziomy izolacji

Poziom izolacji Brudny odczyt Niepowtarzalny odczyt Fantomowy odczyt Anomalia serializacji
Read Uncommitted Chroniony (PostgreSQL) podatny podatny podatny
Read Committed Chroniony podatny podatny podatny
Repeatable Read Chroniony Chroniony Chroniony (PostgreSQL) podatny
Serializable Chroniony Chroniony Chroniony Chroniony
Transakcje i obsługa błędów w PostgreSQL

Efekty poziomów izolacji

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;

Wyniki instrukcji

  • Wynik pierwszego SELECT: 5
  • Wynik drugiego SELECT: 6
Transakcje i obsługa błędów w PostgreSQL

Efekty poziomów izolacji

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;

Wyniki instrukcji

  • Wynik pierwszego SELECT: 5
  • Wynik drugiego SELECT: 5
Transakcje i obsługa błędów w PostgreSQL

Czas na ćwiczenia!

Transakcje i obsługa błędów w PostgreSQL

Preparing Video For Download...