一般的なデータベースのロックとPostgreSQLでの実装に関する考察
データベースのロックに関して、改めて詳細を確認する必要があったため、記事をとりまとめたページです。
提供するシステムで、メリットの何を優先するか、デメリットの何が許容でき、何が許容できないかによって、落とし所を決める必要があります。
分離レベルと悲観的・楽観的ロック
PostgreSQL
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