MySQL和PostgreSQL交易快照比較
wordsCount: 399
readingTime: 1 min
viewers:
此篇討論Mysql和PostgreSQL的快照機制
MVCC (Multi-Version Concurrency Control)
多版本併發控制,核心在於使用版本來代替鎖來解決並行問題
快照定義
- PostgreSQL:Snapshot Isolation (SI)(真快照)
- MySQL (InnoDB):在官方術語中叫**「快照讀」(Snapshot Read)**。 (假快照)
| 特性 | MySQL (RR) | PostgreSQL (RR) |
|---|---|---|
| 快照建立時機 | 事務中第一條SELECT執行時建立。 |
事務開始時就確定了。 |
| 快照的穿透性 | 會被「寫入」穿透。如果你UPDATE了一筆你原本看不見的行,那筆行會立刻出現在你的快照裡(幻讀破綻)。 |
絕對不被穿透。不管你怎麼UPDATE,快照永遠不變。如果衝突,直接報錯(Serialization Error)。 |
| 術語對應 | 快照讀 (Snapshot Read) | 快照隔離 (Snapshot Isolation) |
總結
MySQL 的確有快照機制,只是比較「軟弱」。允許你在同一個事務中,透過UPDATE操作去「看見」別人新插入的資料,從而破壞快照的一致性。而 PostgreSQL 快照則像是「防彈玻璃」,一旦生成,外面的變動絕對進不來。
Table of Contents
Related Posts
設計模式-工廠模式
Factory -工廠模式 分類 建立模式-Creational Patterns 主要角色 Product (產品介面)、Concrete Product (具體產品
2026-4-12
設計模式-策略模式
Strategy-策略模式 分類 行為模式-Behavioral Patterns 主要角色 Strategy (策略介面)、Concret
2026-4-12
Mysql 的 Repeatable Read & 幻讀
此篇討論Mysql RR下,預設解決了哪些幻讀,哪些沒解決?如何處理剩下的幻讀問題 定義 快照讀 : select 當前讀
2026-4-12
交易隔離等級
What we talk this ? 在不同的商業模式下,注重的核心不同,有些要速度,可接受不準確,有些要資料精準,可接受慢一點
2026-4-12
交易併發問題
What we talk this ? 介紹基本定義,沒搞清楚就不知道交易隔離等級解決了什麼問題 交易併發常見問題 定義: 問題類型 定義
2026-4-12
Sponsor
Wechat
Alipay