在 PHP-MySQL 中处理数百个同时更新请求的最佳方法


Best way to handle hundreads of simultaneous update request in PHP-MySQL?

我在 5-10 秒内在单个表上同时收到 100 个行更新请求,这会导致问题,它实际上并没有更新行,也没有在mysql_query($query)响应中给出任何错误。

请建议造成这种情况的原因是什么,我该如何解决这个问题?

表中有大约 200k 条记录。这可能是问题之一。

检查您的存储引擎配置。听起来您实际上并没有执行"太多"插入,但是如果您使用的是紧张的服务器(例如廉价的共享主机),切换到更适合大量插入/更新的引擎可能会有所帮助:

比较InnoDB和MyISAM的性能

其他可能/可能不适用于您的特定情况的潜在解决方案:

1) 减少表上正在更新的索引数量,以提高更新/插入的速度。

2) 将传入的编辑缓存到较小的表(没有索引),然后定期同步它们。

3) 将插入合并到单个查询中(尽管这听起来对您不起作用),将它们全部插入到内存中的临时表中,然后插入到...从中选择 ...对目标表进行单个事务。