意図ロックとは?いとロック
意図ロックとは、下位の粒度へロックを掛けることを、その上位の粒度へあらかじめ表明しておくロック。表にIS(意図共有)やIX(意図専有)が立っていれば、表ロックの可否を配下の行を1本ずつ調べずに表レベルの両立性表だけで判定できる。多粒度ロックを実用的な速度で成立させる仕掛けである。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
粒度を階層にすると、表ロックを取る側は「配下のどこかに行ロックが残っていないか」を毎回確かめねばならない。行数ぶんの走査が入るなら、細かい粒度にした意味が消えてしまう。そこで下位を触る側へ上位への表明を義務づけ、確認を上位1か所の照合で終わるようにした。行ロックが実用になっている前提がこの仕掛けであり、両立性表の読み取りとして出題される。
具体例
MySQLのInnoDBは、行にX(専有)を取る前にその表へIXを自動的に設定する。SHOW ENGINE INNODB STATUSで表に対するIXと行に対するXが同時に並んで見えるのはこのため。開発者がIXを明示的に書く場面はほとんどない。
試験での引っ掛け
IXどうしは両立する。予告にすぎず、実際に押さえているのは配下の別々の行なので、表のレベルでは衝突しない。「専有と名が付くから排他」と読むのが最頻出の誤り。衝突するのは表への実ロックとの間で、IXと表全体へのSは両立しない。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。