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



我有一个关于并发控制的问题,以及何时担心这个问题。我创建了一个PHP/MySQL站点(InnoDB)。我知道如何避免事务问题,但还有并发控制。

例如,我的网站是一个包含用户插入商品的电子商务。当用户向站点插入新项目时,数据库会创建一个 productId 作为主键(由数据库自动递增),并存储通过表单提交的有关该产品的其他数据。 我正在使用准备好的语句。

我是否需要担心两个或多个用户是否同时执行此操作?同时提交两个或多个项目是否有可能弄乱不同行的数据?

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

提前谢谢,马库斯。

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

您可以执行快速表锁定,在更新时特别有用

最新更新