我正在排查为什么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

谁能帮助我确切地了解使查询花费这么长时间的原因,以及如何提高性能?

mysql得花多少钱,php-我需要帮助来解决为什么mySQL查询花费比...相关推荐

  1. mysql mvcc gap lock_为什么说 MVCC 和 Gap Lock 解决了 MySQL 的幻读问题

    周一的时候被问到了幻读的问题,之前都是看别人写的文章没有建套环境来实际操作一下. 其实很多问题不仅是要看源码,还是需要动动手,光看还是会忘记. 先说结论在忽略参数设置的情况下, MySQL 的确使用 ...

  2. 解决安装mysql的”A Windows service with the name MySQL already exists.“问题

    解决安装mysql的"A Windows service with the name MySQL already exists."问题 参考文章: (1)解决安装mysql的&qu ...

  3. php mysql插入的数据有引号,PHP引号转义中解决POST,GET,Mysql数据自动转义问题

    在处理mysql和GET.POST的数据时,常常要对数据的引号进行转义操作. PHP中有三个设置可以实现自动对'(单引号),"(双引号),\(反斜线)和 NULL 字符转转. PHP称之为魔 ...

  4. 构建一个移动应用程序要花多少钱?

    构建一个移动应用程序要花多少钱? How much does it cost to build a mobile app? 不幸的是,对于一个移动应用程序的开发成本应该是多少这个问题,没有一个单一的答 ...

  5. python花钱培训值吗-python培训需要花多少钱?

    Python简化的语法是其更接近自然语言,就是小白也能通过python编写代码.Python作为对新手友好型语言典范,受到大多数编程初学者的欢迎.如果想要转入IT行业,python绝对是一个突破口.那 ...

  6. 建一个 5G 基站,到底要花多少钱?

    作者 | 小枣君 本文经授权转载自鲜枣课堂(ID:xzclasscom) 自从国内5G正式宣布商用之后,全国各地的5G网络建设速度明显加快了. 5G基站的身影,出现在越来越多的城市.角落.5G信号的覆 ...

  7. 线上python课程一般多少钱-参加Python培训机构要花多少钱

    参加Python培训机构要花多少钱?具体还是看培训机构所在的城市.选择机构的规模.教学方法.具体的教学内容和培训方向等.然后从教学方法.教学内容和培训方向两方面详细了解Python培训需要多少钱?下面 ...

  8. 没个百来万就想自建技术团队?亲身经历告诉你,一个APP从无到有的开发到底要花多少钱!...

    作为一名苦逼的移动互联网创业者,被外行的朋友们问及最多的问题是"做一个网站需要多少钱?"或者"做一个APP需要多少钱?" 3年前,天真的我认为做一个APP顶多5 ...

  9. 企业网站制作多少钱、企业网站需要多少钱、建立网站需要花多少钱

    企业网站制作多少钱.企业网站需要多少钱.建立网站需要花多少钱 image.png 关于企业网站,需求是第一位的,安全是第一位的.你是做什么网站,电商网站(B2B还是B2C).行业门户.集团网站还是企业 ...

  10. 为什么剩余数不能相加_为什么花的钱剩下的相加不等于花去的数

    展开全部 应该说是花的钱剩下的相加不一定等于e69da5e887aa62616964757a686964616f31333366306530花去的钱.必须要满足一定条件才可以相等. 下面我们来验证下: ...

最新文章

  1. python3 urllib 类
  2. ASP.NET Web Pages – 文件简介
  3. 洛谷——P2094 运输
  4. x265-确定slice type-2
  5. java 静态方法_80后程序员,教你学Java核心技术:用户自定义类+静态域静态方法
  6. 倒计时2天!1024 程序员节全日程曝光,105 场深度演讲点燃数字经济新时代
  7. 深度学习 --- 受限玻尔兹曼机RBM(MCMC和Gibbs采样)
  8. Java分代垃圾回收机制:年轻代/年老代/持久代(转)
  9. LINQ TO SQL 动态查询
  10. Spring依赖注入@Autowired原理解析(一)之寻找需要注入的属性
  11. 企业微信API群机器人配置
  12. python列表平均数怎么求_Python 中 输入一个数值列表,并求出其平均值
  13. 数据分析师职业发展的几个层次,具体是什么做什么的
  14. 取石子c语言,取石子(一)(C语言)
  15. 人工神经网络课后题答案,人工神经网络原理答案
  16. gitbook 插件 文章 TOC 目录
  17. 汽车控制器测试工装-ETest
  18. 【MyBatis】搭建MyBatis
  19. echarts----雷达图
  20. [数据结构与算法综合实验]欢乐练练看

热门文章

  1. MyEclipse 使用文档
  2. Verilog基础知识0(`define、parameter、localparam三者的区别及举例)
  3. ASP Blob类型转存为Long Raw类型
  4. Office Tip(1) : Split the Screen
  5. 深入浅出选择类排序算法(简单选择排序,堆排序)
  6. java循环速度比较_List的二种循环速度比较
  7. 递归经典案例汉诺塔 python实现_python实现汉诺塔递归算法经典案例
  8. 拓端tecdat|python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化
  9. 拓端tecdat:数据评估三方科技公司开发人员能力
  10. 拓端tecdat|Python中用Prophet模型对天气时间序列进行预测与异常检测