分離レベル、セーブポイント、ロールバック

PostgreSQL におけるトランザクションとエラー処理

Jason Myers

Instructor

分離レベル

分離レベル ダーティリード 反復不能読取 ファントムリード 直列化異常
Read Uncommitted 保護 (PostgreSQL) 脆弱 脆弱 脆弱
Read Committed 保護 脆弱 脆弱 脆弱
Repeatable Read 保護 保護 保護 (PostgreSQL) 脆弱
Serializable 保護 保護 保護 保護
PostgreSQL におけるトランザクションとエラー処理

Repeatable Read

  • SERIALIZABLE

    • コミット済みトランザクションを直列実行したのと同等に見なす。
  • REPEATABLE READ

    • 次を参照する:
      • トランザクション開始前にコミットされたデータ
      • そのトランザクション内の過去の文の結果
    • 並行トランザクションでコミットされた変更は見えない。
PostgreSQL におけるトランザクションとエラー処理

REPEATABLE READ を可視化

REPEATABLE READ の図

PostgreSQL におけるトランザクションとエラー処理

REPEATABLE READ を可視化

REPEATABLE READ の図

PostgreSQL におけるトランザクションとエラー処理

REPEATABLE READ を可視化

REPEATABLE READ の図

PostgreSQL におけるトランザクションとエラー処理

REPEATABLE READ

START TRANSACTION ISOLATION LEVEL REPEATABLE READ;

UPDATE inventory SET quantity = quantity - 4 WHERE name = 'macaron'; SAVEPOINT first;
UPDATE inventory SET quantity = quantity - 12 SAVEPOINT second; COMMIT;
PostgreSQL におけるトランザクションとエラー処理

Passons à la pratique !

PostgreSQL におけるトランザクションとエラー処理

Preparing Video For Download...