什么时候担心并发控制PHP mysql

时间:2012-11-15 17:48:23

标签: php concurrency mysqli controls

我对并发控制有疑问,何时担心。我创建了一个PHP / MySQL站点(InnoDB)。我知道如何避免事务问题,但是有并发控制。

我的网站是一个电子商务,它保存用户插入的商品,以此为例。当用户向站点插入新项时,DB会将productId创建为主键(由DB自动递增),并存储通过表单提交的有关该产品的其他数据。我正在使用准备好的陈述。

我是否必须担心两个或更多用户是否在同一时间这样做?是否有可能同时提交两个或更多项目会弄乱不同行的数据?

为了能够插入产品,用户必须使用会话登录,如果这对问题很重要。

提前致谢Markus。

2 个答案:

答案 0 :(得分:3)

除非他们写入完全相同的行,否则我不明白为什么你会遇到任何并发问题。即使他们写入同一行,InnoDB也有行级锁定,这意味着一行将被锁定,直到用户完成写入,让后续用户“等待它” “直到锁定被释放。关于“冲突INSERT查询”的可能性:如果要将新数据插入到使用自动递增主键的表中,则每次都可以保证获得唯一ID,这意味着并发永远不应该是INSERT的一个问题。

答案 1 :(得分:2)

您可以执行快速表锁定,尤其适用于更新