在电商项目的抢购或其他并发量比较大的项目中,往往会遇到很多人同时操作一张表的情况,这样就会造成读写的错误,特别是写
先看一下不加锁会出现什么情况
先创建一张表
正常情况下,右边的php文件执行几次数据表中的id就加几,应该如下图所示,但是高并发时并不是这样
现在用ab模拟并发的情况,这里一共请求100次,我们想要的结果是5+100=105,
来看下结果,php文件执行了100次数据却只加到46,明显不是我们想要的结果
那么现在来加锁试一下
再将文件执行100次
查看结果,46+100=146正是我们想要的结果
优化:
给数据库加锁存在一种弊端,就是加锁操作时,别人无法读取数据库数据,造成堵塞
想让修改时别人可以正常读取数据,可以使用文件锁
执行测试命令
查看结果,正是我们想要的
时间: 2024-10-24 11:11:52