データベース用語集一覧に戻る
ホーム > データベーススペシャリスト > 用語集 > MVCC(多版同時実行制御)とスナップショット分離
トランザクション・排他制御・分離レベル 重要度:★★出題: AM2・PM1・PM2

MVCC(多版同時実行制御)とスナップショット分離

たばんどうじじっこうせいぎょとすなっぷしょっとぶんり / Multi-Version Concurrency Control (MVCC)
更新前の古いバージョンの行データ(版)を保持することで、読取り処理が書込み処理をブロックせず、書込み処理も読取り処理をブロックしない同時実行制御方式。

3行速習ポイント

  • 更新トランザクションが対象行に専有ロックを掛けていても、参照トランザクションは更新前のバージョン(スナップショット)をロック待ちなしで読み取れる
  • 「読取りは書込みをブロックせず、書込みは読取りをブロックしない」ため、参照系と更新系が混在するOLTPシステムで高いスループットを発揮する
  • ただし不要になった古いバージョン(デッドタプルやUNDOセグメント)の回収(VACUUMやガベージコレクション)や、書込みスキュー(Write Skew)への配慮が必要

図解

図2相ロッキング方式とMVCC(多版同時実行制御)の比較
ロッキング方式(共有・専有ロック)午後試験の標準仕様
更新中(専有ロック保持中)の行に対するSELECT(共有ロック要求)はコミットまでロック待ちとなる
MVCC(多版同時実行制御)読取り非ブロック
更新中の行に対しても更新前スナップショット(旧版)を参照するためロック待ちなしで即時応答

概要と本質

Oracle、PostgreSQL、MySQL(InnoDB)など主要な現代RDBMSが採用している同時実行制御方式です。ただしIPAの午後試験では、問題文の冒頭またはRDBMS仕様欄に「SELECT文は共有ロックを掛け、UPDATE/INSERT/DELETE文は専有ロックを掛ける(ロッキング方式)」と明記されている場合が多いため、必ず問題文で与えられたRDBMSのロック仕様に従って解答する必要があります。

重要ポイント・コア概念

  • MVCC下でのREAD COMMITTED:各SQL文の実行開始時点の最新コミット済みスナップショットを読み取る
  • MVCC下でのSnapshot Isolation(REPEATABLE READ相当):トランザクション開始時点のスナップショットを一貫して読み取る
  • 午後試験の鉄則:問題文に「参照時は共有ロックを取得する」と書かれていたら、MVCCの知識ではなく問題文の共有ロック/専有ロック両立表に従ってロック待ちを判定すること

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

午前IIではMVCCの特徴(古い版を保持してロック競合を回避する、タイムスタンプ順序制御等)が問われます。午後試験では必ず問題文中の「使用するRDBMSの仕様」を読み、共有ロックを使うロッキング方式か版管理方式かを確認する癖をつけてください。

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

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

即時アウトプットで定着
データベーススペシャリスト 過去問演習で実践力を鍛える

理解を深める推薦副読本

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

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

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

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

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

『MVCC(多版同時実行制御)とスナップショット分離』の背景にある理論と業界動向を体系的に理解し、実務や小論文に直結する戦略的視点を深掘りできます。

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

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

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