访问php+mysql网站速度不稳定的故障排查

前端之家收集整理的这篇文章主要介绍了访问php+mysql网站速度不稳定的故障排查前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文内容主要是记录故障排除的思路,如有问题请指正。

在本地测试新建的网站各种流程顺利,上传至云端后访问网站不同页面开启速度不一,有秒开的,或者最长等120秒才打开的,偶尔还出现卡死问题。

最初认为上传代码有问题

重新下载代码本地测试,依然流畅。

整理一下思路,分析有可能一下原因:

1.云端服务器的性能不如本地。(个人网站各种便宜)

2.网站访问延迟过高或不稳定。

2.图片压缩不够,网页开启加载时间过长。

3.PHPMysqL联动效率问题。

逐个排除一下

问题1:登陆云端后台查看服务器状态,cpu、内存、网卡流量一切正常。(没有人看的网站,当然一切正常)不存在性能不足的问题。

问题2 :通过本地ping 域名和用站长工具测试网络访问速度,基本在60~120ms,0掉包。不存在访问延迟和掉包问题。

问题3: 图片压缩不够,网页开启加载时间过长。通过chrome浏览器的-检查-Networ 功能查看页面加载情况

图片多数在30ms左右就加载完成了,故也不是网页开启慢的主要问题。

那就剩最后一个问题了:PHPMysqL联动。

提前登陆云端数据库后台,当访问网站出现卡顿的时候,数据库后台查看当前会话情况,发现有多个相同的查询语句处于锁等待的状态。问题找到了!

复制问题语句

SELECT DISTINCT biao_A.* 
FROM biao_A, biao_B, biao_C,biao_D 
WHERE biao_B.Net_id = biao_A.id AND biao_B.biao_C_id = biao_C.biao_C_id AND biao_C.biao_C_id = 99

问题出在多表联查语句上: “FROM biao_A, biao_B, biao_C,biao_D ” 整个条件语句“WHERE biao_B.Net_id = biao_A.id AND biao_B.biao_C_id = biao_C.biao_C_id AND biao_C.biao_C_id = 99 ”中与biao_D都没有关联,这个失误导致与本次查询结果不相关的biao_D参与了进来,大大降低了查询效率,直接影响网站的页面呈现。

应在语句中删除 biao_D

本地测试mySQL查询速度

修改前:0.130秒

修改后:0.0007秒

修改代码上传至云端,再次访问网站速度明显加快。

猜你在找的PHP相关文章