データベース用語集一覧に戻る
ホーム > データベーススペシャリスト > 用語集 > SELECT ... FOR UPDATE(悲観的排他制御・行レベル専有ロック)
トランザクション・排他制御・分離レベル 重要度:★★★出題: AM2・PM1・PM2

SELECT ... FOR UPDATE(悲観的排他制御・行レベル専有ロック)

せれくとふぉーあっぷでーと / SELECT ... FOR UPDATE (Pessimistic Row Locking)
後続のUPDATE/DELETEに備えて、SELECT文による行読込みの時点で対象行に専有ロック(排他ロック)を掛け、他トランザクションからの更新や専有ロック取得をブロックするSQL句。

3行速習ポイント

  • READ COMMITTED環境で「在庫数をSELECTで確認してからアプリで引き当て計算しUPDATEする」際のロストアップデート(更新紛失)を防止する
  • 通常のSELECT(共有ロックまたはロックなし)の後にUPDATEするとデッドロックや二重引当てが起きるため、読込み時点で専有ロックを獲得する
  • ただし画面表示からユーザーのボタン押下までトランザクションをまたぐ対話型処理ではロック保持時間が長くなるため、タイムスタンプ等による楽観的排他制御を用いる

図解

図SELECT ... FOR UPDATE による悲観的排他制御シーケンス
11. SELECT ... FOR UPDATE
Lock Acquired
対象行の読取りと同時に行レベルの専有ロック(Xロック)を獲得
22. 在庫・残高チェックとUPDATE
Safe Update
他トランザクションの割り込みをブロックした安全な状態で引当て計算・更新を実行
33. COMMIT によるロック解放
Unlock
トランザクション完了により専有ロックを解放し、後続トランザクションへ制御を渡す

概要と本質

午後I・午後IIのトランザクション設計問題で最も登場回数が多いSQL句です。「在庫引当て」「残高更新」「予約枠確保」など、現在の値を読み取ってチェックした後に更新する処理では、SELECTの直後に他トランザクションが割り込んで同じ行を読み書きするのを防ぐため、`FOR UPDATE` 句による専有ロックの事前取得が必須となります。

重要ポイント・コア概念

  • ロックが解放されるタイミング:当該トランザクションが COMMIT または ROLLBACK を実行した時点
  • 索引が使われない場合や検索条件によっては、対象行だけでなくテーブル全体や範囲にロックが掛かり同時実行性が低下するため、主キーまたは一意索引で対象行を絞り込むことが重要
  • NOWAITオプションやロック待ちタイムアウトを設定することで、長時間ロック解放待ちで滞留するのを防ぐ

午後I・午後II記述試験での攻略ポイント

午後試験のSQL穴埋めや改善策の記述で「複数トランザクションが同時に実行された際、在庫数がマイナスになったり更新が上書きされたりする不具合をどう防ぐか」と問われたら、『SELECT文にFOR UPDATE句を指定する』『対象テーブルの行に専有ロックを掛けて読み込む』が王道の正解になります。

午後記述で使える加点キーワード(クリックでコピー)

この用語が出題された過去問を解く(1分演習)

即時アウトプットで定着
令和3年 秋期 午前II 問14
RDBMSのロックに関する記述のうち,適切なものはどれか。ここで,X,Yはトランザクションとする。...
この過去問を解く(1分演習)
令和7年 秋期 午後I 問3
SQLの設計とトランザクション排他制御・索引設計...
この過去問を解く(1分演習)
令和7年 秋期 午後II 問1
コード決済業務及びポイント管理業務におけるデータベースの実装・運用(排他制御、2相コミットプロトコル、補償トランザクショ...
この過去問を解く(1分演習)
令和6年 秋期 午後II 問1
バッチ処理のオンライン時間帯移行に伴う排他制御,障害回復見積り及びテーブル設計・運用...
この過去問を解く(1分演習)
データベーススペシャリスト 過去問演習で実践力を鍛える

理解を深める推薦副読本

この用語の背景理論・実務動向を深く理解し、午後II小論文の説得力を劇的に高める必読書

PR
ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ
戦略・名著セレクションソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチマーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン
ISBN: 4873119820
🏗️ EA・SoR/SoE・モダナイゼーションの名著

ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ

マーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン

アーキテクチャ特性(非機能要件)の定義と優先度付けモジュラリティ、マイクロサービス、イベント駆動設計のトレードオフレガシーシステムの段階的刷新(モダナイゼーション)設計
なぜこの用語の理解に役立つのか

『SELECT ... FOR UPDATE(悲観的排他制御・行レベル専有ロック)』の背景にある理論と業界動向を体系的に理解し、実務や小論文に直結する戦略的視点を深掘りできます。

午後II小論文(ST論文)への応用・加点ポイント

エンタープライズアーキテクチャ(EA)やSoR/SoE連携、クラウド移行のアーキテクチャ方針を決定した根拠(トレードオフ判断)を論述する際の強力な武器になります。

※価格・在庫状況は各ECモールの最新情報をご確認ください(もしもアフィリエイト経由)