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

时间:2012-06-30 06:50:50

标签: php mysql database database-performance database-update

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

请说明导致此问题的原因以及如何解决?

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

1 个答案:

答案 0 :(得分:1)

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

Comparing InnoDB to MyISAM Performance

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

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

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

3)将插入合并到一个查询中(虽然这听起来对你不起作用)将它们全部插入到内存临时表中然后INSERT INTO ... SELECT FROM ...来进行单个事务针对目标表。