![]() |
1
4
mysql_insert_id()将返回每个连接基上最后一个插入的id。所以基本上,如果这是您的担心,那么您不必担心并发脚本请求。 供参考: see the MySQL docs . 编辑: 顺便说一句,你可以很容易地测试这个。 测试程序
打开两个浏览器选项卡:
第一个请求:
在第二秒内请求,例如,最多4秒:
第一个请求应该给您一个小于第二个请求的ID。 |
![]() |
2
3
SQL transactions 是你需要的。在MySQL中,InnoDB是唯一支持事务的引擎。 |
![]() |
3
-2
您可以使用两种一般策略来确保此问题不会影响您。首先,您可以使用事务(如另一位作者指出的那样)。 但是从性能角度来看,手动跟踪ID号可能更快。您可以通过使用数据库中的全局ID来实现这一点。使系统中的ID全局唯一的滚动编号。 假设全局ID是100,您知道您需要6个ID。然后在全局ID表的全局ID行中写出106…然后使用101作为第一个条目,这是102数据点中的外键,依此类推。这大大提高了处理大型数据集时的性能。 因此,如果您需要制作100个新的插入,这可能是一个好主意。如果你一次只需要6个……使用事务… 正如jmucchiello在评论中所建议的。您可以使用UPDATE语句来确保另一个进程没有写入全局ID条目。类似的东西 更新globaltable set id=106,其中id=100 我可以看到我正在修改这个答案,但是如果你有一百万行要导入,这确实是最好的策略…哦,好吧…… -FT |
![]() |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
![]() |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
|
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |