了解多版本並行控制 (MVCC) 與快照集
大部分的資料庫管理系統 (DBMS) 都會使用鎖定來強制執行並行控制,但 PostgreSQL 會以替代方法補充鎖定。 PostgreSQL 使用稱為多重版本並行控制 (MVCC) 的系統,可讓相同數據列的多個版本存在,以改善並行。 使用此系統時,每個查詢都會看到先前的交易一致數據快照集。 MVCC 可確保正在讀取數據的交易不會封鎖正在寫入數據的交易,反之亦然。
例如,連接 A 正在執行查詢,以掃描資料表的所有數據列。 同時,連接 B 正在執行更新部分數據列的查詢。 MVCC 允許這兩個查詢同時執行,方法是建立另一個受影響的數據列版本。 如此一來,連線 B 就可以執行更新,而不會影響連線 A。這個流程是透過每個資料列版本的「可見開始時間」交易有 xmin 值和「可見結束時間」交易有 xmax 值所達成。 使用MVCC時,連接 A 會忽略連線 A 查詢啟動之後所發生的任何修改。

交易
DBMS 交易是不能部分完成的工作單位,因此交易為全部認可或完全不認可。 交易也會用於並行用途。 使用隔離等級時,可以定義一個交易在其他並行交易上的效果。
您可以使用 BEGIN TRANSACTION 或 START TRANSACTION 來啟動交易。 您可以使用 COMMIT 完成交易,以儲存交易中所做的所有變更或 ROLLBACK,以復原交易所做的任何變更。 例如:
BEGIN TRANSACTION;
UPDATE production.workorder
SET stockedqty=7
WHERE workorderid=1;
COMMIT;