(2)完成了预提交之后,就可以真正的提交事务了,Postgresql中使用COMMIT PREPARED命令进行数据的最终提交。...加锁对象的大小称为 锁粒度(granularity)。
加锁的对象可以是 逻辑单元: 属性值, 属性值的集合, 关系, 索引项, 甚至整个数据库。...基于多版本的并发控制(MVCC)
MVCC通过把数据项的旧值保存在系统中, 来保证并发事务的正确性。
一般把 基于锁的并发控制 称为 悲观机制; 把 MVCC 称为 乐观机制....由于 MVCC 读写不会相互阻塞, 避免了大粒度和长时间的锁定, 能更好地适应 对读的响应速度 和 并发性要求高的场景, 常见的数据库如 Oracle, PostgreSQL, MySQL(Innodb...PostgreSQL 为每个事务分配一个递增的, int32 整型 数作为 唯一的事务ID, 即 xid. 。