php - 当流量很大时,表中最后插入的 ID 可能会遇到冲突

标签 php mysql

我正在开发一个项目,该项目将在网站上收集大量流量,因此当用户创建帖子时,该插入帖子的 ID 应立即可用,以便插入到另一个表中。

我的问题是,当网站上的流量太多时,插入新的帖子会发生冲突,如果 user1 首先插入帖子并且网络速度较慢,则几乎同时但在 user1 之后, user2 插入帖子并且使用更快的网络?此时,user2 的帖子将是最后插入的帖子,user1 可以查询 user2 的帖子 id 作为最后插入的帖子 ID。

我不知道如何解释这一点,但我希望有人能理解并帮助我。

<?php
    $sql = $db_connect->prepare("insert into post(userid,postnum,posttext)values(?,?,?)");
    $sql->bind_param("sss",$id,$postnum,$post);
    $sql->execute();
    $post_id = $sql->insert_id;
?>

最佳答案

使用自动增量字段作为您的 ID,而不是自己生成它。无论并发请求数量有多少,Db 都会注意使其唯一。

关于php - 当流量很大时,表中最后插入的 ID 可能会遇到冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46926817/

相关文章:

javascript - 将 Bootstrap 模态与动态 PHP 数据重用

php - CakePHP:如何禁用 Model.id 的自动递增?

mysql - 如何根据先前和最后更改的值构建新的日期列?

php - Magento - 显示缺货产品时间执行

python - 在mysql中添加列移动平均线

PHP运行后台作业无需等待响应非阻塞模式如触发器类型

php - 如何在 PHP 中解析 XML 文件

php - mysql mod函数返回负数

mysql - 将phonegap与mysql数据库集成

java - executeBatch 不返回多个 ResultSet 是否有原因