关于高并发秒杀超出库存数目的问题。
某程序员 2017-05-05 02:11:06 最近看了不少关于网站秒杀活动时,大数目的用户并发抢购,如何避免库存出现负数之类的情况。
我的想法是,类似mysql数据库,多个线程并发更新同条数剧时,会自动并发串行化,也就是给同时到达这里的是三个用户排个序,一个一个执行,并生成排他锁。那么我只要设计这个库存字段unsigned不让它可能为负数。不就好了吗?当更新结果为负数的时候,mysql会自动抛出异常,这时候我服务端catch住异常,所有数据库操作回滚,提示无库存,从而避免库存超卖的情况。
当然我没有考虑性能方面,不知道我这个想法是否正确?