2024-11-09
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/1482831046

回答

在 MySQL 中,乐观锁和悲观锁是数据库的并发控制策略。不同于库锁、表锁、行锁等数据库具体的锁结构,它更多是一种设计思想。实际上,乐观锁和悲观锁的思想应用广泛,不局限于某种编程语言和数据库。

乐观锁

乐观锁(Optimistic Locking)的核心思想是假设数据在大多数时间内不会发生冲突,因此乐观锁不会上锁。只是在事务提交时才会检查是否有冲突:如果有人修改了数据则放弃操作,否则执行操作。通常,乐观锁通过数据版本(Version)或者时间戳(Timestamp)来实现。很明显,乐观锁是通过在表中冗余额外字段来避免加锁,提升数据库并发能力。

悲观锁

悲观锁(Pessimistic Locking)的核心思想是假设数据很可能会发生冲突,因此在事务开始时就对数据进行加锁,防止其他事务修改。通常,悲观锁通过数据库的锁机制来实现,如共享锁(Shared Lock)和排他锁(Exclusive Lock)。

扩展

一、实现方式

1、建表及初始化语句