👩💻 Join our community of thousands of amazing developers!
数据库事务隔离发展标准一文中,从标准制定的角度介绍了数据库的隔离级别,介绍了Read Uncommitted、Read Committed、Repeatable Read、Serializable等隔离级别的定义。本文就来看看究竟有哪些常见的实现事务隔离的机制,称之为并发控制(Concurrency Control)。 原理 所谓并发控制,就是保证并发执行的事务在某一隔离级别上的正确执行的机制。需要指出的是并发控制由数据库的调度器负责,事务本身并不感知,如下图所示,Scheduler将多个事务的读写请求,排列为合法的序列,使之依次执行: 这个过程中,对可能破坏数据正确性的冲突事务,调度器可能选择下面两种处理方式: Delay:延迟某个事务的执行到合法的时刻 Abort:直接放弃事务的提交,并回滚该事务可能造成的影响 可以看出Abort比Delay带来更高的成本,接下来我们就介绍不同的并发控制机制在不同情况下的处理方式。 分类 这里从两个维度,对常见的并发控制机制进行分类: 1. 乐观程度 不同的实现机制,基于不同的对发生冲突概率的假设,悲观方式认为只要两个事务访问相同的数据库对...