Skip to content

Article Brief: 資料庫的 Transaction Isolation Level

Working Topic

資料庫的 Transaction Isolation Level — 四種隔離等級與 Read Anomaly 的對照與取捨

Article Type

Daily Questions Challenge — 技術文章

Intended Reader

有基礎 SQL 概念、正在準備後端面試的工程師。

Article Purpose

讓讀者能清楚說明 Transaction Isolation Level 的四個等級各自解決什麼問題、帶來什麼代價,並知道 MySQL 的預設行為。

Core Question

資料庫的 Transaction Isolation Level 有哪些?各自提供什麼保證、有什麼取捨?

Scope

  • 什麼是 Transaction Isolation,為什麼需要它(併發下的資料一致性問題)
  • 三種 Read Anomaly:Dirty Read、Non-repeatable Read、Phantom Read
  • 四個標準 Isolation Level(ANSI SQL):
    • Read Uncommitted
    • Read Committed
    • Repeatable Read
    • Serializable
  • 每個 Isolation Level 各附一個 Mermaid sequence diagram,用兩個併發 Transaction 的互動來示範該 Level 下會發生(或被防止)的 Anomaly
  • 各 Level 防止哪些 Anomaly 的對照表
  • 實務取捨:效能 vs 一致性
  • MySQL 預設(Repeatable Read + MVCC 補充)

Non-Goals

  • 分散式 Transaction(2PC、SAGA)
  • 具體 Lock 類型實作細節(已有獨立文章 2026-06-01)
  • PostgreSQL、Oracle 等資料庫詳細比較

Suggested Category

Backend(Daily Questions Challenge 索引中的 Backend 分類)

Notes from Similar Existing Posts

  • 2026-06-01-race-condition-atomic-update-lock.md:介紹悲觀鎖、樂觀鎖、Atomic Update,本文不重複這些 Lock 機制,但可在前言中提到 Isolation Level 是比 Lock 更高層的資料庫保證。
  • 文章編號預計為 #15(依索引現有 00–14 推算)。
  • 日期:2026-06-10