本文内容主要是记录故障排除的思路,如有问题请指正。
在本地测试新建的网站各种流程顺利,上传至云端后访问网站不同页面开启速度不一,有秒开的,或者最长等120秒才打开的,偶尔还出现卡死问题。
最初认为上传的代码有问题
重新下载代码本地测试,依然流畅。
整理一下思路,分析有可能一下原因:
1.云端服务器的性能不如本地。(个人网站各种便宜)
2.网站访问延迟过高或不稳定。
2.图片压缩不够,网页开启加载时间过长。
3.php和mysql联动效率问题。
逐个排除一下
问题1:登陆云端后台查看服务器状态,cpu、内存、网卡流量一切正常。(没有人看的网站,当然一切正常)不存在性能不足的问题。
问题2 :通过本地ping 域名和用站长工具测试网络访问速度,基本在60~120ms,0掉包。不存在访问延迟和掉包问题。
问题3: 图片压缩不够,网页开启加载时间过长。通过chrome浏览器的-检查-Networ 功能查看页面加载情况
图片多数在30ms左右就加载完成了,故也不是网页开启慢的主要问题。
那就剩最后一个问题了:php和mysql联动。
提前登陆云端数据库后台,当访问网站出现卡顿的时候,数据库后台查看当前会话情况,发现有多个相同的查询语句处于锁等待的状态。问题找到了!
复制问题语句
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秒
将修改的代码上传至云端,再次访问网站速度明显加快。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款