2012-06-30 29 views
-2

我在5-10秒内在单个表上接收到100s的同时行更新请求,这会导致问题,它实际上并未更新该行,也未在mysql_query($query)响应中给出任何错误。在PHP-MySQL中处理同时更新请求的最佳方式?

请建议可能是什么原因,我该如何解决这个问题?

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

+0

“没有提供任何错误” - 你如何捕捉你的代码中的错误? – sandradev

+2

在10秒内100次更新,每秒10次更新对于正确配置的数据库不是一个大问题。由于我们不知道你的数据库是如何配置的或者你的代码是做什么的,所以我们不能真正回答你做错了什么。 – deceze

+0

@sandradev我只是检查$ response = mysql_query($ query);如果$ response是错误的,那就是错误。 –

回答

1

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

1)减少对表的索引数被更新,以提高更新/插入的速度:Comparing InnoDB to MyISAM Performance

这可能/可能,不适合您的特定情况下工作的其他潜在的解决方案。

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

3)将插入合并到单个查询中(虽然听起来这样做不适用于您)将它们全部插入到内存中的临时表中,然后INSERT INTO ... SELECT FROM ...使单个针对目标表的交易。

+0

我们已经有innoDB引擎。 –

+0

良好的联系。尽管假设他正在使用最新的,最新的,它仍然是最新的。当我测试一些东西时,默认引擎是InnoDB。至少它是为我。 – Andy

相关问题