本文介绍了数据库中两种常见的锁机制——悲观锁和乐观锁。悲观锁假设会发生并发冲突,通过独占资源来避免;而乐观锁则假设不会发生并发冲突,在提交数据时检查数据完整性。文章还详细讨论了两种锁的应用场景及其可能带来的性能问题。

1.悲观锁:悲观锁是假设会产生并发冲突,我们通过数据库自带的锁机制,这个这个资源进行独占,只有在这个请求处理完后,其他请求才能对这个资源进行处理。在实际的生产环境中,如果并发量不打不允许脏读时可以使用这种方式;但如果系统并发分长达,悲观锁阻塞程序,照成非常大的性能问题。

2.乐观锁:乐观锁假设不会发生并发冲突,只是在提交数据的时候检查是否违反数据的完整性。乐观锁不能解决脏读的问题,乐观锁使用方案:使用一个自增长的整数表示数据的版本号,更新时检查版本号是否一致,比如当前数据的版本号为3,当我我们要更新这条数据时我们知道他的版本号要更新为4,假设版本号字段为version,我们在更新时检测version+1=4是否成立,如果不成立那么在我们修改之前该数据已经被修改过了

转载于:https://www.cnblogs.com/xiaodo0/p/3611265.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值