我在5-10秒内在单个表上收到100个同时行更新请求,这会导致问题,实际上并没有更新行,也没有在mysql_query($query)
响应中给出任何错误。
请说明导致此问题的原因以及如何解决?
表中有大约200,000条记录。这可能是问题之一。
答案 0 :(得分:1)
检查存储引擎配置。听起来你实际上并没有执行“太多”插入,但如果你在一个紧张的服务器上(如廉价的共享主机),切换到更适合大量插入/更新的引擎可能会有所帮助:
Comparing InnoDB to MyISAM Performance
其他可能/可能不适用于您的特定情况的潜在解决方案:
1)减少正在更新的表上的索引数,以提高更新/插入的速度。
2)将传入的编辑缓存到较小的表(没有索引),然后定期同步它们。
3)将插入合并到一个查询中(虽然这听起来对你不起作用)将它们全部插入到内存临时表中然后INSERT INTO ... SELECT FROM ...来进行单个事务针对目标表。