php-我需要帮助来解决为什么mySQL查询花费比预期更长的时间的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-我需要帮助来解决为什么mySQL查询花费比预期更长的时间的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2269字,纯文字阅读大概需要4分钟。
内容图文
我正在排查为什么php脚本需要花费这么长时间才能运行并且有时会超时的问题.我有一个数据库,其中充满了来自少数(总共9个)供应商的产品信息(约50,000条记录).该脚本提取一个XML文件,其中包含每个供应商的feed中有更改的产品列表,找到该记录,然后对其进行适当的修改.
在产品表中查找与供应商的SKU和供应商ID相匹配的单个产品记录的查询耗时为0.25秒至0.5秒,因此约400行的小更新耗时超过2分钟.我是数据库性能的新手,我一直在努力理解为什么我有一个非常简单的查询要花很长时间才能运行.
首先,我注释掉了每个查询在数据库中的查询,以查看脚本本身迭代XML文件所花费的时间.它将在1-2秒内遍历400条记录.然后,我在迭代中遇到的第一个查询中添加了该查询,该查询正在执行搜索以在表中为XML文件中调用的产品找到正确的条目.在这里,时间跳到了脚本的2分钟运行时间.
迭代代码,总结了相关部分:
$checkq = "SELECT * FROM productLinks WHERE affiliateSKU=:sku AND supplierID=:sid";
$checkqs = $DBHa->prepare($checkq);
$xml = simplexml_load_file($supplierURL,"SimpleXMLElement",LIBXML_NOCDATA);
foreach($xml->children() as $products) {
//Set variables from the XML
$checkqs->execute(array(':sku'=>$sku, ':sid'=>$supplierID)); //This is the problem query
//I capture the number of results (should always be 1 or 0),
//and modify the entry if the result is 1, and insert a new entry if 0)
}
在研究可能是什么问题的过程中,我选择了一个随机条目并直接在phpMyAdmin中运行上述查询,时间从0.1到0.75秒不等.在研究过程中,我使用了一些故障排除步骤,但无法弄清楚它的真正含义.
我使用了Explain语句,并返回了以下内容:
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
1 | SIMPLE | productLinks | ref | supplierID | supplierID | 4 | const | 11827 | Using where
然后,我对查询运行了Profile,而查询本身花了0.2218秒根据phpMyAdmin返回1结果,而Profile结果总共返回了0.00293秒,如下所示:
Status Duration
starting 0.000132
checking permissions 0.000009
Opening tables 0.000007
init 0.000011
optimizing 0.000007
executing 0.000010
end 0.000007
query end 0.000006
closing tables 0.000019
freeing items 0.000075
cleaning up 0.000010
谁能帮助我确切地了解使查询花费这么长时间的原因,以及如何提高性能?
解决方法:
为了获得更好的性能,请确保在
table productLinks
columns (affiliateSKU, supplierID)
内容总结
以上是互联网集市为您收集整理的php-我需要帮助来解决为什么mySQL查询花费比预期更长的时间的问题全部内容,希望文章能够帮你解决php-我需要帮助来解决为什么mySQL查询花费比预期更长的时间的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。