关于caikuaitoutiao的速度优化
优化前
负载高 MYSQL卡顿。网站卡顿
网站执行时间18秒 非常慢。执行时间一般0.6秒以内,超过0.6秒用户会感觉卡会跑。
优化中
1.数据库优化
select * from sd_model_news left join sd_content on sd_model_news.cid=sd_content.id where islock=1 and classid in(479) order by rand() limit 10
数据库堵塞非常严重
卡的语句非常多
执行时间一点点优化的越来越快了 从18秒到2.23秒
其他优化
首页优化使用了LAZYLOAD让页面加载更快,不管是新浪 百度 还是微信 图片都是拉到哪里 哪里再显示的。
类目首页(列表页/list/163.html 文件 HOME数字.PHP):
select * from sd_content force index(islock_3) where islock=1 and classid in(225,360,361,362,363,364,365,366,367,533) order by ontop desc,ordnum desc,createdate desc,id desc limit 10;
CLASSID是一个树状的列表
该语句0.5秒的执行时间 一个页面就会有10几个这个语句 导致打开很慢
换成下面的写法执行时间是0.0008秒 快了几千倍
select * from (select * from (select * from sd_content where islock=1 and classid in(225) order by ontop desc,ordnum desc,createdate desc,id desc limit 10) t
union select * from ( select * from sd_content where islock=1 and classid in(360) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(361) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(362) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(363) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(364) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(365) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(366) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(367) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t
union select * from ( select * from sd_content where islock=1 and classid in(533) order by ontop desc,ordnum desc,createdate desc,id desc limit 10 ) t)tt order by ontop desc,ordnum desc,createdate desc,id desc limit 10
#,,,,,,,,,;
PHP代码部分 类似这样的都得改
改成如下
添加类
#union代替in 速度更快 免得网站卡死
function get_sonid_all_union_table($id,$table,$where,$order,$top)
{
$str=”;
$dt=explode(‘,’,$id);
foreach($dt as $key => $val)
{
$str.=’,’.get_cate_info($val,’sonid’,$val);
}
$i=1;
$SQLstr=”;
$dt=explode(‘,’,$str);
foreach($dt as $key => $val)
{
if ($val==””) continue;
if($i==1){
$SQLstr.=”select * from (select * from {$table} where “.str_replace(“(replaceid)”,$val,$where).” order by {$order} limit {$top}) t ” ; }
else{
$SQLstr.=”union select * from (select * from {$table} where “.str_replace(“(replaceid)”,$val,$where).” order by {$order} limit {$top}) t ” ;
}
$i++;
}
return “(“.$SQLstr.”) tt”;
}
http://www.caikuaitoutiao.com/list/163.html 优化完这个页面直接秒开0.098秒
HOME数字.PHP的其他文件 我也一一改了。
以后复制创建新的栏目就复制现在的代码去改 不要用老的代码。
show页面优化
1.该页面底部的随机改成下面的代码快20多倍 0.2几秒到0.01几秒
{sdcms:rs top=”10″ table=”sd_content” field=”id,title” where=”islock=1 and classid in($classid)” order=”rand ()”}
3. 服务器优化
PHP和MYSQL的配置文件优化 让程序更加的快速执行。
这是优化前的 都是错误的
手机版
手机版执行也慢0.78秒
优化后0.09秒
其他前端建议
执行完加下载完0.41秒。非常快,秒开。建议还可以优化下几个图片还能更快。
http://www.caikuaitoutiao.com/upfile/2023/12/1703160727395.png
http://www.caikuaitoutiao.com/upfile/2023/09/1695806278913.png
图片太大了 1M 建议100KB以内
这个地方是800像素的 放了一个3440像素的图片。建议修改下图片大小。
其他所有类别 这个地方的图片同样的的问题
2.3M
优化后
网站速度执行速度非常快
优化后的数据库CPU才5.3% 优化前是200% 300多%
优化前18秒执行时间
最后首页0.1秒执行完成 禁用缓存下载完0.267秒 秒开了。