Рівні ізоляції

Транзакції та обробка помилок у PostgreSQL

Jason Myers

Instructor

Паралельність

  • Керування одночасним виконанням кількох операцій.
  • Має унікальні проблеми в базі даних.
  • Використовує правила, відомі як рівні ізоляції, щоб легше аналізувати результати.
Транзакції та обробка помилок у PostgreSQL

Bрудні читання

Bрудне читання

Транзакції та обробка помилок у PostgreSQL

Неповторюване читання

Неповторюване читання

Транзакції та обробка помилок у PostgreSQL

Фантомне читання

Фантомне читання

Транзакції та обробка помилок у PostgreSQL

Аномалія серіалізації

Аномалія серіалізації

Транзакції та обробка помилок у PostgreSQL

Рівні ізоляції

Рівень ізоляції Bрудне читання Неповторюване читання Фантомне читання Аномалія серіалізації
Read Uncommitted Захищено (PostgreSQL) вразливий вразливий вразливий
Read Committed Захищено вразливий вразливий вразливий
Repeatable Read Захищено Захищено Захищено (PostgreSQL) вразливий
Serializable Захищено Захищено Захищено Захищено
Транзакції та обробка помилок у PostgreSQL

Вплив рівнів ізоляції

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;

Результати операторів

  • Перший результат SELECT: 5
  • Другий результат SELECT: 6
Транзакції та обробка помилок у PostgreSQL

Вплив рівнів ізоляції

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;

Результати операторів

  • Перший результат SELECT: 5
  • Другий результат SELECT: 5
Транзакції та обробка помилок у PostgreSQL

Давайте потренуємось!

Транзакції та обробка помилок у PostgreSQL

Preparing Video For Download...