Skip to content
Computing Rich #acid#isolation#transactions

Transaction Isolation Levels

Read uncommitted, committed, repeatable read, serializable. Each blocks more anomalies, costs more concurrency.

A free, animated transaction isolation levels you can read here or embed on any website, from Scrollchart.

Transaction Isolation Levels

Transaction Isolation LevelsMore isolation prevents more anomalies but limits concurrency. SQL standard + MVCC row compared.Dirty Readsees uncommittedNon-Rep. Readrow changes mid-txPhantom Readnew rows appearWrite Skewconcurrent constraintRead UncommittedSQL:1992 level 0✗✗✗✗Read CommittedPostgreSQL default✓✗✗✗Repeatable ReadMySQL InnoDB default✓✓✗✗Snapshot IsolationMVCC-based (Oracle, PG)✓✓✓✗SerializableStrictest (SSI in PG 9.1+)✓✓✓✓Concurrency(relative, higher = more)100%88%70%60%40%Anomaly preventedAnomaly possibleSnapshot Isolation prevents phantoms but not write skew (two txns each pass a check, both update).PostgreSQL default: Read Committed. MySQL InnoDB default: Repeatable Read (MVCC, not true locking). Serializable via SSI adds minimal overhead in PG 9.1+.

A 4x4 matrix: rows are isolation levels, columns are anomalies (dirty read, non-repeatable read, phantom, write skew). Each cell shows whether the level prevents the anomaly. A side animation enacts each anomaly with two transactions interleaving. Snapshot isolation included as a separate row.

Good for

  • Database tutorials
  • Concurrency bugs in production post-mortems
  • SQL Server/Postgres deep dives

Source & accuracy

This transaction isolation levels is an editorial illustration built to represent the concept accurately. Where it shows figures, they are typical or representative values chosen to make the relationship clear, not a single underlying dataset. The diagram and its explainer are reviewed and maintained centrally, and updated over time as understanding improves.

Trade-off between isolation and concurrency

Isolation levels control how much a transaction can see of concurrent writes. Stronger isolation means fewer anomalies (dirty reads, phantom rows) but fewer concurrent transactions can run. Read uncommitted is fastest and weakest: a transaction can see uncommitted changes from others, risking corruption if those changes roll back. Serializable is strongest but slowest: transactions run as if they were sequential, blocking heavily.

Practical isolation in modern systems

Read committed is the most common default: you see only committed data, avoiding rollback-race conditions, but you can see changes written after your transaction started. Repeatable read protects against in-transaction conflicts on the same row, but a concurrent insert can still add new rows that your range query now sees (phantom reads). Serializable prevents all three anomalies but requires locking or MVCC snapshots that degrade throughput.

Choosing the right level

Most applications run read committed because the cost-benefit is clear. Financial systems often use serializable or repeatable read. Databases with MVCC (like PostgreSQL) make stronger isolation cheaper by keeping multiple row versions, so repeatable read is a safe choice without the serializable penalty. Know your isolation level: it is the hidden parameter that controls both your consistency and your scalability.

Embed this diagram

Add this animated transaction isolation levels to your own site. Copy one line of HTML, or use the embed builder for theme and sizing options.

Reference

What this is
A free, embeddable, animated transaction isolation levels for any website.
Who uses it
Developer blogs, DevOps / SRE sites, CS educators.
How to embed
Copy one line of HTML. No signup. No watermark. Works in WordPress, Webflow, Ghost, Substack, plain HTML.
File size
iframe embed, ~80 KB gzipped (loads on demand, does not block your page paint).
License
Free forever. Editorial explainer text included; updated centrally over time.

Embed format options

Copy the universal HTML snippet, the WordPress shortcode, or an iframe fallback - see the WordPress plugin page for details. Any format keeps the same Core Web Vitals profile and the same explainer text.

Embed snippet
<div data-scrollchart="acid-isolation-levels" data-scrollchart-v="1"></div>
<script src="https://scrollchart.com/embed.js" async></script>

Frequently asked questions

Where can I get a free animated "Transaction Isolation Levels" for my website?
Scrollchart provides "Transaction Isolation Levels" as a free, embeddable animated diagram you can add to any website with one line of HTML. No signup is required and there is no watermark. The diagram and its explainer text are served from scrollchart.com, so the embed stays current without any maintenance on your end.
How do I embed a transaction isolation levels in a developer or tech blog?
Copy the one-line snippet from the Scrollchart diagram page and paste it into your post HTML. It works in any static site generator, CMS, or hand-coded HTML page. The embed is a thin loader, not an iframe, so the content is fully in your DOM.