解决方法肯定是用文件锁了,具体怎么做看数据库区的mysql模块下的mysql锁。 使用文件锁,先试试有没有其他方法,具体如下。 背景知识:数据库存储引擎、表锁、文件锁。 数据库存储引擎: 如果是mysiam引擎,则它的锁只能支持表锁,所以要操作这个表的功能,都会被阻塞。这样做会拖慢整个网站的网速。 举个例子: 比如:我们下订单时,要锁定商品表,那么网站下订单的人非常多,那么商品表就一直处于被锁定的状态。 这样其他和商品表有关的操作,就会被阻塞! 而如果是innodb引擎,则它的锁只能支持行锁。(查询速度比较慢)故使用文件锁。 下单流程: 加锁->当多个人同时购买时,操作系统的底层确保只有一个客户在进行操作,其他的只能阻塞。 ->先取出商品库存量,检查库存量,下单,减少库存量。->解锁 然后其他客户再操作,流程与上相同。 |
项目中并发下单的问题怎么解决?
最新推荐文章于 2020-10-06 09:47:05 发布