楼主,您的文章整个大前提是你先查库存,取出来判断再存进数据库。那如果您sql换成update table set stock=stock-1 where goodid=“xxx” and stock>0 不就不会超卖了嘛,因为DML语句是原子性的。然后整个过程的效率瓶颈只在数据库的io读写速率。您的方法虽然分字段加了锁,但是写数据库的时候,还是会加行锁,其他字段也不能够并行写。