数据库管理系统(DBMS )的并发控制任务是在多个事务同时访问数据库中的同一数据时,不破坏事务的独立性、统一性和数据库的统一性。 乐观控制(乐观锁定)和悲观同时控制(悲观锁定)是同时控制主要采用的技术手段。
悲观锁定:假设发生并发冲突,以阻止可能违反数据完整性的所有操作。 检查完数据后,将其锁定,直到提交事务。 实现方法:使用数据库中的锁定机制
乐观锁定:假设不发生并发冲突,只在提交操作时检查是否违反了数据的完整性。 修改数据时锁定事务,并以版本方式锁定。 实现方法:音乐一般使用版本号机制或CAS算法实现。
两种锁定的使用场景
上述两种摇滚的介绍表明,两种摇滚各有优缺点,不能认为一种比另一种好。 乐观锁定适用于写入少的情况(读取多个场景的情况),也就是说适用于冲突真的少的情况。 这样可以消除锁定开销,从而提高整个系统的吞吐量。
但是,在多写入的情况下,一般会发生冲突,因此上位APP应用会不断进行retry,反而会降低性能,因此一般在多写入的场景中使用悲观的锁定是合适的。