ファントムリードとは?ファントムリード
ファントムリードとは、同じ検索条件で2度読んだときに、他のトランザクションの挿入や削除によって前回は無かった行が現れる(あるいは在った行が消える)現象。既存の行の値ではなく、条件に合致する行の集合そのものが変わる点に特徴があり、分離レベルではSERIALIZABLEまで上げないと規格上は防げない。
最終更新:2026-10-06
この語が出る過去問を解く →背景
行ロックは既に存在する行しか押さえられないので、まだ存在しない行の挿入を止める術がない。防ぐには条件そのものにロックを掛ける述語ロックや索引の範囲ロックが要り、同時実行性を大きく損なう。代償が重いからこそ、この現象だけが最上位の分離レベルまで残るものとして切り分けられている。
具体例
「今月の受注」の件数を数えた後に同じ条件で明細を出すと、その間に他の利用者が登録した受注が混ざり、件数と明細の合計が合わなくなる。REPEATABLE READでも規格上は起こり得る。
試験での引っ掛け
既存行の値が変わるのが反復不能読取り、行そのものが増減するのがファントムで、防げるのはSERIALIZABLEのみ。ただし実装差があり、InnoDBのREPEATABLE READはギャップロックでファントムを抑えている。
関連用語
出た過去問
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17(IPA)
図は、ある探索条件を使って数学模試の平均点を算出している間、当該探索条件に合致するA君の結果を“数学模試成績”表に登録したときの様子を示している。平均点を求める…
正解:ファントムリード
要点:再検索で新たな行が出現する現象がファントムリード
同じ検索条件で読み直したときに、他のトランザクションの挿入によって前回は無かった行が現れる現象をファントムリードという。ここでは合計点の算出後に新しい成績行が追加・コミットされ、受験者数を数え直した際に件数が増えたため、合計と件数の対象がずれてしまった。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 4. トランザクション処理 > (1) 同時実行制御(排他制御)に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。