设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > MySql教程 > 正文

为什么Zookeeper天生就是一副分布式锁的胚子?(5)

发布时间:2020-03-15 20:08 所属栏目:115 来源:站长网
导读:selectgoods_numfromgoodswheregoods_name=小本子; updategoodssetgoods_num=goods_num-1wheregoods_name=小本子; 上面的 SQL 是一组的,通常先查询出当前的 goods_num,然后再 goods_num 上进行减 1 的操作修改库

select goods_num from goods where goods_name = "小本子"; 

update goods set goods_num = goods_num -1 where goods_name = "小本子"; 

上面的 SQL 是一组的,通常先查询出当前的 goods_num,然后再 goods_num 上进行减 1 的操作修改库存。

当并发的情况下,这条语句可能导致原本库存为 3 的一个商品经过两个人购买还剩下 2 库存的情况就会导致商品的多卖。那么数据库乐观锁是如何实现的呢?

首先定义一个 version 字段用来当作一个版本号,每次的操作就会变成这样:

select goods_num,version from goods where goods_name = "小本子"; 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读