LearnViz CompSci
Home / Learn / Databases / MVCC

Intermediate Topic 29 of 51 Databases

MVCC

Keeping multiple versions so readers don't block writers.

How it works

Multi-version concurrency control keeps multiple versions of each row, tagged with transaction identifiers or timestamps. A reader sees the version that was visible at its snapshot, so readers never block writers and writers never block readers. Writers create new versions, and a background process such as vacuum removes old versions that no transaction can see. Write conflicts are detected at update or commit time.

Step-by-step walkthrough

  1. The writer creates a new version of the row.
  2. The old version stays visible.
  3. A reader works with the snapshot from its start time.
  4. It reads version 1 without blocking the writer.
  5. Old versions are cleaned later by vacuum or garbage collection.

Where it is used

PostgreSQL, MySQL InnoDB, Oracle and many other databases use MVCC to give high concurrency with consistent reads and snapshot isolation.

Common pitfall

Old row versions accumulate if long transactions hold snapshots open, causing table bloat and slower scans. Write skew is possible under snapshot isolation. Updates are effectively inserts of new versions, which affects index and storage costs. Monitor long-running transactions and autovacuum, and use serializable mode or explicit locks where invariants span rows.

Where it fits in the course

MVCC is topic 29 of 51 in Databases, rated Intermediate. It follows Locking and Two-Phase Locking. The next topic is Stored Procedures and Triggers.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Databases quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is MVCC?
Keeping multiple versions so readers don't block writers. It belongs to Databases and is an intermediate-level topic.
Where do people use MVCC?
PostgreSQL, MySQL InnoDB, Oracle and many other databases use MVCC to give high concurrency with consistent reads and snapshot isolation.
What is the most common mistake with MVCC?
Old row versions accumulate if long transactions hold snapshots open, causing table bloat and slower scans.
What should I learn before this topic?
Start with Locking and Two-Phase Locking, the topic just before it in Databases.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Databases quiz.
Is MVCC hard to learn?
It is an Intermediate topic. Be comfortable with the Beginner topics in this area first, then read the common pitfall carefully, since it is where most mistakes happen.
How long does it take to learn MVCC?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to MVCC?
Locking and Two-Phase Locking, Stored Procedures and Triggers, Concurrency Control are closely connected. The full list is in the related topics section of this page.
What should I study after MVCC?
Continue with Stored Procedures and Triggers, the next topic in Databases.

Related topics