ロックの粒度とは?ロックのりゅうど
ロックの粒度とは、同時実行制御でロックを掛ける単位の大きさ。データベース→表領域→表→ページ→行と階層をなし、細かくすれば並行度は上がるがロック本数と管理領域が増え、粗くすれば管理は軽いが待ちが増える。並行度と管理コストのどちらを取るかという設計判断そのものである。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
ロックはデータの正しさを守る仕組みだが、掛けた瞬間に他のトランザクションを止める副作用を伴う。表ごと押さえれば実装は単純でも一度に1人しか更新できず、行ごとに押さえれば同時に動けても管理情報が行数ぶん要る。どちらか一方では実用にならないため、階層を用意して場面ごとに選べるようにしたのが粒度という考え方である。
具体例
MySQLのInnoDBは行ロックを既定とし、受注明細の別々の行を更新する2つの画面操作は互いを待たせない。一方、夜間の一括集計のように表全体を読む処理では、行ごとに何百万本もロックを取るより表ロック1本のほうが軽く済む。
試験での引っ掛け
階層は独立ではなく包含関係にあるため、ある行に共有ロックが掛かっている間は上位の表への専有ロックを取得できない。これを毎回全行走査で判定すると細かくした利点が消えるので、上位へ予告を置く意図ロックが併用される。「細かいほど良い」ではない。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。