MySQL表并发解决方案

时间:2014-03-21 10:49:56

标签: php mysql sql multithreading

我一直在寻找MySQL/PHP/InnoDB中表格并发问题的几种不同解决方案:

我真的希望进程2在开始自己的事务和SELECT数据之前等待进程1提交,然后尝试插入UNIQUE INDEX。因此,进程1锁定表,进程2检查锁,并等待WRITE lock已经存在sleep() ...(我不能使用信号量)。

  1. 是吗? 1B。那简单吗? 1C。在INSERT时,我还应该检查重复的条目吗?

  2. 此外,我是否需要检查此单WRITE lock 无处不在表格中有UPDATES和/或INSERTS,或者通过UPDATE/INSERT等待自动处理?这只做了一次,所以如果是这样的话,让所有其他查询等待是唯一的最大缺点。

  3. 解决方案奖励的想法:在插入时检查重复键错误似乎更简单,如果为真,则重新SELECT并重新计算新值并再次尝试直到DUPLICATE KEY错误不再。

0 个答案:

没有答案