首页 新闻 搜索 专区 学院

mysql的update语句与高并发数量减少

0
[待解决问题]

很惭愧,只会一个crud,crud还没玩明白.

问题1如何产生:面试A,问我高并发如何减少库存,emmm这时发挥我看过的文章,将数据加载到redis缓存可以用redis实现,面试官说不用redis,就用mysql来保证,我不知道,他告诉我用update语句可以实现,update语句是乐观锁,update num=num-10 where id=1 and num>0。可以保证。(这里我点记不清了,where后面的num的值是update之前的还是之后的update num=num-10 where id=1 and num>10).我瞬间大悟,原来利用mysql的事务就可以很方便解决并发问题。
面试B,也问了我高并发如何减少库存。我哈哈哈,都是在什么地方找的面试题吗?我告诉他update乐观锁,利用update语句。但是面试官告诉我,还是可能会出现问题,让我再想想。我想不到已经在底层加上了一个锁,还会有什么问题吗,只能回答不知道。

提问1:为什么update减少库存高并发仍会有问题?

问题2如何产生:我百度了一下,解决库存用的是select for update ;update。
提问2:这两种方式区别。

问题如何产生3:现在有一批商品,接收数据存的时候有根据过期时间判断是否过期,过期将状态置为过期,查询的时候根据状态为条件查询的。更新库存和状态我想到可以用上述提到的update或select for update实现,但不知道在哪里控制逻辑,怎么写

提问3:这个过期判断逻辑在哪里比较好,如果页面查询的时候过期状态没更新展示了过期数据,提交订单时候一大堆提示过期了的商品不能提交。

15年的夏天的主页 15年的夏天 | 菜鸟二级 | 园豆:202
提问于:2022-01-14 10:12
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册