一般的なデータベースのロックとPostgreSQLでの実装に関する考察

データベースのロックに関して、改めて詳細を確認する必要があったため、記事をとりまとめたページです。

提供するシステムで、メリットの何を優先するか、デメリットの何が許容でき、何が許容できないかによって、落とし所を決める必要があります。

分離レベルと悲観的・楽観的ロック

PostgreSQL

第 13章同時実行制御

13.1. 序文
13.2. トランザクションの隔離
13.2.1. リードコミッティド隔離レベル
13.2.2. シリアライザブル隔離レベル
13.3. 明示的ロック
13.3.1. テーブルレベルロック
13.3.2. 行レベルロック
13.3.3. デッドロック
13.3.4. 勧告的ロック
13.4. アプリケーションレベルでのデータの一貫性チェック
13.5. ロックとインデックス

データベーステスト

その他

参考

  • DBのトランザクションについて
    https://qiita.com/ftsan/items/62590571e36365416572
  • 排他制御(楽観ロック・悲観ロック)の基礎
    https://qiita.com/NagaokaKenichi/items/73040df85b7bd4e9ecfc
  • アプリケーション開発において重要なロックを掘り下げ、ORM における楽観的ロックの実現例を紹介する
    https://qiita.com/tatsurou313/items/053cffdfe940a89d7f5a

プログラム開発

Posted by iwadjp