由多个用户插入记录


Inserting records by multiple users

假设您的网站上有 200 个用户,所有用户都发表评论并同时按下"保存"按钮。

  1. 这 200 条评论是否会排成队列并逐条插入?
  2. 如果是:这是否意味着您在队列中的位置越低,您必须等待的时间就越长,直到您的彗星被保存?

数据库:mysql。

是的,一个接一个。因为每个请求都会创建新连接并更新索引。是的,您的响应等待队列。

但是,如果您不使用FK,唯一键等,则不会花费很长时间(少于秒)。因此,索引对于防止表/索引锁定非常重要。

200 个用户意味着单独的 200 个数据库连接。

话虽如此,每个刀片都是单独处理的。
注意:如果您使用交易,这一点会更清楚一些。您可以提交或回滚单个事务。

对于 MySQL 服务器来说,200 次插入是一个相当小的负载,因此等待时间不会非常明显。

在某种程度上,插入可以通过使用不同的线程、并发插入以及行锁定来"并行化"(表锁定可以防止这种情况)

但是,是的,它们被放入队列中,并将以FIFO方式插入。