← Back to Chapters

MySQL Isolation Levels

? MySQL Isolation Levels

? Quick Overview

Isolation Levels control how transactions interact with each other in a database. They define how visible data changes are between concurrent transactions and help balance data consistency with performance.

? Key Concepts

  • Transaction: A sequence of SQL operations executed as a single unit
  • Dirty Read: Reading uncommitted data from another transaction
  • Non-Repeatable Read: Same row gives different values within a transaction
  • Phantom Read: New rows appear when re-running a query

? Isolation Levels in MySQL

  • READ UNCOMMITTED – Lowest isolation
  • READ COMMITTED
  • REPEATABLE READ – Default in MySQL
  • SERIALIZABLE – Highest isolation

? Syntax / Theory

Isolation levels can be set globally, per session, or per transaction.

? View Code Example
-- Set isolation level for current session
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

? Code Examples

? View Code Example
-- Start a new transaction
START TRANSACTION;

-- Read data inside the transaction
SELECT * FROM orders WHERE order_id = 101;

-- Commit the transaction
COMMIT;

? Live Output / Explanation

What Happens?

Under REPEATABLE READ, the SELECT query will always return the same result within the transaction, even if another transaction modifies the data and commits it.

? Interactive Simulator

Simulate two concurrent sessions (A and B) accessing the same Bank Account.
Initial Balance: $1000

Session A You

Waiting to start...

Session B Background

Waiting to start...

? Tips & Best Practices

  • Use REPEATABLE READ for most applications (default)
  • Use SERIALIZABLE only when strict consistency is required
  • Lower isolation improves performance but increases anomalies
  • Always understand concurrency needs before changing isolation levels

? Try It Yourself

  • Open two database sessions and run transactions in parallel
  • Test how data visibility changes with each isolation level
  • Compare READ COMMITTED vs REPEATABLE READ behavior