高并发Mysql乐观锁机制

为什么80%的码农都做不了架构师?>>>   hot3.png

高并发Mysql乐观锁机使用举例:
以MySQL InnoDB为例,使用version版本号方式
1,假设商品goods表中有一个字段status,status为1代表商品未被下单,status为2代表商品已经被下单,那么我们对某个商品下单时必须确保该商品status为1。假设商品的id为1。

下单操作包括3步骤:
1.查询出商品信息
select (status,status,version) from t_goods where id=#{id}

2.根据商品信息生成订单

3.修改商品status为2
update t_goods set status=2,version=version+1 where id=#{id} and version=#{version};

在这个例子中,可以不需要version更直接

update t_goods set status=2 where id=#{id} and status=1

 

 

 

转载于:https://my.oschina.net/appnet/blog/758667

你可能感兴趣的:(高并发Mysql乐观锁机制)