悲观并发控制

两阶段加锁是一个典型的悲观并发控制。设计原则:如果某些操作可能出错,则直接放弃等待直到安全。

乐观并发控制

如果可能发生潜在冲突,事务会继续执行而不是终止,寄希望与相安无事;而当事务提交时,数据库会检查是否发生了冲突,如果是的话,中止事务并接下来重试。

对比

如果冲突很多则性能不佳,如果性能良好,且事务之间的竞争不大,乐观并发控制会比悲观方式性能高很多。