データベーススペシャリスト暗記無料で始める

MVCCとは?エムブイシーシー

MVCCとは、更新のときに古い版を残したまま新しい版を作り、参照するトランザクションには一貫した時点の版を返すことで、読取りと書込みが互いに待たされないようにする同時実行制御方式。多版同時実行制御、追記型の更新方式とも呼ばれる。

最終更新:2026-10-06

試験情報

データベーススペシャリスト試験の過去問では3回出題されています(2019年度〜2024年度)。

データベーススペシャリスト試験の頻出用語/午前II

別名:多版同時実行制御、多版同時実行、multiversion concurrency control

この語が出る過去問を解く →

背景

ロックだけで正しさを守ると、長時間の集計が更新を止め、更新が集計を止めるという相互の待ちが必ず生じる。読取りが多い業務でこれは致命的なので、「書き換えずに新しい版を足す」ことで、読み手には更新前の姿を見せ続ける方式が生まれた。並行度は上がるが、古い版を保持する領域と、不要になった版を回収する処理が新たに必要になる。物理設計では、この回収の遅れが領域の膨張として現れる。

具体例

PostgreSQLやOracle Database、MySQLのInnoDBはいずれもこの方式を採る。月次売上の集計が受注明細を読んでいる最中に受注確定処理が同じ行を更新しても、集計は開始時点の版を読み続けるので、途中で単価が変わって前半と後半で数字が食い違うことがない。

試験での引っ掛け

2相ロック方式なら書込み中の行を読もうとして待ち、待った末に新しい値を読む。MVCCでは待たずに古い版を読む——この結果の違いが問われる。「MVCCなら待ちが一切起きない」わけではなく、書込みどうしは依然として衝突する。また古い版の回収が滞ると領域が肥大する点も設計上の代償である。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では3回出題(2019年度〜2024年度)
  • 分野:午前II
  • 2相ロック方式なら書込み中の行を読もうとして待ち、待った末に新しい値を読む。