MySQL PHP脚本减慢需求重构

MySQL PHP脚本减慢需求重构,第1张

概述嗨,我有2个mysql表,它们都需要更新,companies unique_code 公司拥有100万条记录,我需要为每条记录分配一个唯一的代码,我的问题是我的PHP脚本抓住了所有公司,并且在foreach循环中,从表unique_code中获取了唯一代码并进行更新,然后还将unique_code表更新为flag该代码已被使用.PHP代码挂起了很长时间,并达

嗨,我有2个mysql表,它们都需要更新,

companIEsunique_code

公司拥有100万条记录,我需要为每条记录分配一个唯一的代码,我的问题是我的PHP脚本抓住了所有公司,并且在foreach循环中,从表unique_code中获取了唯一代码并进行更新,然后还将unique_code表更新为flag该代码已被使用.

PHP代码挂起了很长时间,并达到了最大执行限制.我真的很固执,需要这些公司拥有唯一的代码,有人可以考虑其他方法吗?

压缩代码示例.

 foreach ($aCompanIEs as $companIEs){   $query="SELECT * FROM unique_code WHERE used = 0"   foreach(unique_code as code){       //  UPdate companIEs table       $query = "UPDATE companIEs SET ID = $code";       // Flag code used       $query = "UPDATE unique_codes WHERE code = $code";   }}

为您的时间加油.

完整的代码:

$query1 = "SELECT code FROM unique_codes WHERE used = 0\n";$aUniqueCode = $oDbh->getAll($query1);$query2 = "SELECT ID FROM companIEs";$aCompanIEs = $oDbh->getAll($query2);foreach ($aCompanIEs as $companIEs){    $query = "SELECT code FROM unique_codes WHERE used = '0' liMIT 1";    $oCode = $oDbh->getRow($query);    $query3.= "UPDATE companIEs SET code = $oCode->code WHERE ID = $companIEs->ID\n";       $query4 = "UPDATE unique_codes SET used = '1' WHERE code = $oCode->code\n";    $oDbh->query($query4);      }print print_r($query3).';';exit;

我正在做的是不更新将所有sql导出到文件的公司,以便以后可以导入.最佳答案如果您只是想向表中添加新的主键(因此需要一个一次性过程),则不要在PHP中进行.直接使用MysqL并使用alter table完成工作. MysqL将直接更快,并且不会遇到像PHP这样的长进程的时序问题.

如果您尝试做其他事情,则可能需要建立更多的表模式,对我来说,我是否有正确的目标还不是很清楚.

总结

以上是内存溢出为你收集整理的MySQL PHP脚本减慢需求重构 全部内容,希望文章能够帮你解决MySQL PHP脚本减慢需求重构 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1165546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存