第十三章. 多版本並行控制

內容
介紹
事務隔離
讀已提交隔離級別
可串行化隔離級別
鎖和表
鎖和索引
應用層的數據完整性檢查
多版本並行控制(Multi-Version Concurrency Control (MVCC))是用於提高資料庫在一個多使用者環境下性能的高級技術。Vadim Mikheev 為 Postgres 提供了MVCC的實現。

介紹

與其他使用鎖來進行並行控制的資料庫系統不同,Postgres 利用多版本模型來維護數據的一致性。這就意味著當檢索資料庫時,每個事務都看到一個數據的一段時間前的快照(一個 資料庫版本),而不管正在處理的數據當前的狀態。這樣,如果對每個資料庫會話進行 事務隔離,就可以避免一個事務看到因為其它並行的事務更新同一行數據而導致的不連貫的數據。

多版本和鎖定模型的主要區別是在 MVCC 裡,對檢索(讀)數據的鎖要求與寫數據的鎖要求不衝突,所以讀不會阻塞寫,而寫也從不阻塞讀。