RSS
菜单

悲观锁和乐观锁的区别?MySQL 怎么实现?

悲观锁:假设会冲突,操作前先加锁(别人进不来)——SELECT ... FOR UPDATE(行锁/表锁,事务内生效)、LOCK IN SHARE MODE(共享锁)、UPDATE/DELETE 自带;适合写多、冲突频繁场景。乐观锁:假设不冲突,提交时校验版本——版本号(version 字段:UPDATE ... SET v=v+1 WHERE id=? AND version=旧值,影响行数 0 则重试)或时间戳/状态字段;适合读多写少、冲突少场景(如电商下单、库存扣减)。选择:冲突概率高用悲观锁,低用乐观锁;乐观锁需注意 CAS 失败重试与 ABA 问题。

下载推广海报

圈内讨论推广海报

《悲观锁和乐观锁的区别?MySQL 怎么实现?》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。