项目中经常会使用update 给某些字段加1,sql语句对于的类似这样:
update table set column = column+1 where id=1
在高并发场景下,如何控制只执行一次,就是说同时1000个人来请求了,但我的结果就是只要加1
项目中经常会使用update 给某些字段加1,sql语句对于的类似这样:
update table set column = column+1 where id=1
在高并发场景下,如何控制只执行一次,就是说同时1000个人来请求了,但我的结果就是只要加1
4 回答13.2k 阅读✓ 已解决
5 回答7.7k 阅读✓ 已解决
2 回答7.4k 阅读✓ 已解决
2 回答6.6k 阅读✓ 已解决
1 回答5.2k 阅读✓ 已解决
1 回答5k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
如何确定“高”和“低”? 来1000个请求+1,来10个呢?来2个呢?
这个“并发”,并不是真正的并发,总会有先后的。所以,你其实是定义不清楚什么情况下可以+1,什么时候又不可以+
无论怎么定义,你的需求只能加锁来解决,关键是确定什么时候锁,什么时候开锁。。。但是如果“高并发”,锁是一个不好的东西,所以,可能你的需求根本就是不合理的