我想给一些特殊的用户在我们的网站。因此,每个用户将获得每种类型的1张优惠券。5.UPDATE t_voucher_pool SET iBindStatus=2 WHERE iAutoID=10401; //update bindStatus for JD当并发级别为1时,这很好。但是当并发级别提高时,我发现一些请求将失败,它们是由死锁引起的。在这里,如果会话2在步骤1上挂起,而会话1试图执行步骤5,则将检测到死锁。但是既然我已经在</em
WHERE id IN (...)语句同时加载所有相关行。我一直在使用LOCK IN SHARE MODE来确保其他线程不会导致损坏。在一个数据集明显减少的表上测试这一点时,我一直在经历死锁--尽管每个线程都在一组不同的行上工作。当ids的数量超过表大小的特定部分时,SELECT ...线程B:获取锁启动事务;从id IN (6、7、8、9、10)锁定共享模式的项中选择*;
线程A:使用id = 1