Database Lock
Lock とは
Lock とは、トランザクション間の順序性を保証するための方法である。
ここでトランザクションとは、独立して処理できる最小単位を意味する。
Lock は DBMS ごとに実装方式や方法が異なるため、DBMS ごとの Lock の概念を理解しておく必要がある。
DB ロックとは
DB ロックは、複数のトランザクションが 1 つのデータに同時にアクセスしようとするとき、それを制御するものである。
DB ロックの種類
Lock の種類には共有ロック(Shared Lock)、排他ロック(Exclusive Lock)があり、それぞれ Read Lock、Write Lock とも呼ばれる。
- 共有ロック(LS, Shared Lock)
- トランザクションが読み取りを行うときに使用するロックであり、データを読むことはできるが書き込むことはできない。
- 排他ロック(LX, Exclusive Lock)
- トランザクションが読み書きを行うときに使用するロックであり、データを読み書きできる。
排他制御
楽観的ロック
複数の人がほぼ同時にリソースを変更することは少ない、という楽観的な観点から行う排他制御である。
悲観的ロック
複数の人が同じリソースを頻繁に変更するという前提の、悲観的な観点から行う排他制御である。