PostgreSQL SSI
PostgreSQL SSI
BEGIN ISOLATION LEVEL SERIALIZABLE;
SELECT sum(balance) FROM accounts WHERE user_id = 1;
-- 并发冲突时:ERROR 40001 could not serialize access
COMMIT; -- 失败后应用重试整个事务| PostgreSQL | SSI 不阻塞、检测到危险结构时中止事务(40001) |
|---|---|
| MySQL | SERIALIZABLE 下普通 SELECT 隐式加共享锁,阻塞与死锁概率上升 |
| 应用要求 | 无论哪种,都要实现“捕获错误-回滚-重试”的完整链路 |