Home
Posts
Categories
Series
Tags
About
MySQL和PostgreSQL交易快照比較
postedOn: 2026-4-12   updatedOn: 2026-4-12   includedIn: 程式
wordsCount: 399   readingTime: 1 min   viewers:

此篇討論Mysql和PostgreSQL的快照機制

MVCC (Multi-Version Concurrency Control)

多版本併發控制,核心在於使用版本來代替鎖來解決並行問題

快照定義

  • PostgreSQLSnapshot Isolation (SI)(真快照)
  • MySQL (InnoDB):在官方術語中叫**「快照讀」(Snapshot Read)**。 (假快照)
特性 MySQL (RR) PostgreSQL (RR)
快照建立時機 事務中第一條SELECT執行時建立。 事務開始時就確定了。
快照的穿透性 會被「寫入」穿透。如果你UPDATE了一筆你原本看不見的行,那筆行會立刻出現在你的快照裡(幻讀破綻)。 絕對不被穿透。不管你怎麼UPDATE,快照永遠不變。如果衝突,直接報錯(Serialization Error)。
術語對應 快照讀 (Snapshot Read) 快照隔離 (Snapshot Isolation)

總結 MySQL 的確有快照機制,只是比較「軟弱」。允許你在同一個事務中,透過UPDATE操作去「看見」別人新插入的資料,從而破壞快照的一致性。而 PostgreSQL 快照則像是「防彈玻璃」,一旦生成,外面的變動絕對進不來。