Dedecms生成速度慢的解决方案
如遇蓝奏网盘打不开lanzous替换成lanzoux尝试!
最近修改了部分模板,因此有相当一部分页面需要重新生成,在生成时发现Dedecms生成速度慢的受不了,CPU达到100%,小编专门找了另一台闲置的电脑用来生成,一晚上没有关机,三万多数据,竟然用了一晚上还没有完成。在DEDE官方论坛看到这样的解决方法,试了一下,还不错。
打开include/inc/inc_fun_SpGetArcList.php,找到以下代码:
Copy to Clipboard引用的内容:[www.dede58.com]
for($i=0;$i<$ridnum;$i++){
if($tpsql==””) $tpsql .=” And ( (“.TypeGetSunID($reids[$i],$dsql,’arc’).” Or arc.typeid2='”.$reids[$i].”‘) “;
else $tpsql .=” Or (“.TypeGetSunID($reids[$i],$dsql,’arc’).” Or arc.typeid2='”.$reids[$i].”‘) “;
}
将以上代码注释掉,并替换为下边的代码:
Copy to Clipboard引用的内容:[www.dede58.com]
for($i=0;$i<$ridnum;$i++){
if($tpsql==””) $tpsql .=” And (“.TypeGetSunID($reids[$i],$dsql,’arc’);
else $tpsql .=” Or “.TypeGetSunID($reids[$i],$dsql,’arc’);
}
这时你再生成静态时,会发现快了很多,原文中提到这是由于不再考虑副栏目,因此就快了。
其实很多dedecms生成HTML慢的问题,都已经不能通过上述办法解决了,最火软件小编专门从某技术博客转载了新的优化办法,经测试在10万文档下速度改善了许多(需要说明的是:如果您有上万数据,而用的虚拟主机或VPS就不用优化了,因为那是web服务器性能差。)。
主要从以下几个方面优化(如果不想动模板,建议大家直接搞数据库):
数据库 索引的优化 和 分表的处理
模板 重复读取数据的标签太多
服务器 这些一般大家都会,虚拟主机的不用,个人独立主机的可以看看关于服务器的优化教程
这是优化完的效果截图
我先给大家从模板的地方入手处理
/———————模板处理优化————————-/
优化模板的话,主要看你自己的栏目设计到用不用二级,如果是二级的话
大家可以建立一个主数据的调取东西例如 {图片,css,/plus/} 这些东西可以用一个独立的域名做
例如:
http://code.yousite.com/css/网站ccs
http://code.yousite.com/img/网站皮肤图片
http://code.yousite.com/plus/search.php
{等等许多能固定的内容方便以后做成大网站好升级的规划}
然后再做模板的时候尽量不要用
{dede:global.cfg_templeturl/}
{dede:field name=’phpurl’/}
这些还有关于 有{dede:field 的文件, 可以直接写成实际地址,如果是有二级域名的站,写在一个主调取的域名站上
可以不用上下片文章标签,毕竟文章有针对性, 很少人点击上下文章那个,除非是图片站
相关内容可以取舍这个根据使用者选择
至于 推荐 热点的 可以由自由列表处理
例如做一个整站固定的样式然后 用自由列表做出来
图例子:
再文章模板里面写
图例子:
{dede:include filename=”自由列表生成的文件地址 ismake=’no’/} 这里的ismake简单的说就是只里面的东西是否还需要处理 两个选择 yes no no就是直接显示里面的内容
{dede:include file=”/temp/liuxingfushi.html” ismake=’no’/} 我自己在模板的文件夹下又建立了一个temp文件,用来储存每天需要更新的文件
如果直接在模板文件夹下面的话 不用写/ 直接写成{dede:include file=”liuxingfushi.html” ismake=’no’/} 即可
每天生成一次那个 自由列表的对应文件就可以了
还有dedecms里面提供了一个广告的管理插件,我总觉得也是鸡肋,生成时候肯定也受到多多少少的影响
所以我的广告都是直接自己建立好的放在一个文件夹里面{为了防止以后忘记那个文件是那个页面的广告可以建立一个记事本对应广告文件的说明}
这样下来 模板的优化就算是做完了 注意的就是: {尽量少用{dede:field}标签处理数据,和一些如果能用自由列表完成的全部用自由列表完成了}
/——————–数据库处理优化(有效)——————————/
可能是因为官方有所保留吧,官方的默认索引不是最优化的,需要大家手动修改下
如果是有自己独立服务器的话建议用Navicat for MySQL 的客户端软件连接到MySQL Server数据上进行管理操作。
转载一个人的数据库优化教程
个人认为:凡是要排序的字段(比如文档主表的 sortrank、senddate、pubdate、click、goodpost、badpost)和查询条件的字段(比如:typeid,ismake)以及文档ID都要建立索引,如果有一个没有建立,将严重影响MySQL运行效率,导致生成HTML时速度慢。
当系统启用了审核机制以后,标识文档审核属性的字段ismake必须建立索引。
注意:click这个字段,记录文档点击量,此字段值更新频繁,建立索引后对系统维护索引带来一定的负荷,我已经试验了不只是慢,很慢,所以大家不要给这个加索引,大家自己权衡。有人说频繁更新的字段建立索引会容易导致数据库损坏,这个我还没有遇到过,需要考证。
下面是主表索引建立的截图
可能有些人看到那个有个教程是删除typeid的字段这个大家自己研究看看删除了索引好点还是留着好点,我自己留着
这样优化的话,最低生成速度差不多1分钟能上7到8百片文章速度
如果其他人还有什么优化高招可以自己补上大家一起学习进步
dedecms作为当前一款使用非常广泛的建站系统,如何更好的优化成为每个站长的第一件大事,首先我们要考虑的是Dedecms的url规则,而在url规则中,tag标签是最差的,建议大家使用伪静态,但是网上的教程都不太全面,本文就收集整理了最新的dedecms5.7标签tag完善伪静态教程,欢迎大家阅读。
1.dedecms版本 5.7 sp1 GBK
软件名称:
DedeCMS
软件版本:
v5.7 sp1 GBK
软件大小:
7.1MB
软件授权:
免费版本
适用平台:
Win9X Win2000 WinXP Win2003 Vista Win7
下载地址:
http://www.dede58.com/down/html/30167.html
2.服务器:windows 2008 iis7
话不多说,开始!
目标:我们要使原来tags.php?/veryhuo/ 变动为/tags/veryhuo.html 并且为伪静态,为什么要为伪静态?因为我们的关键词(tags)太多,比真正静态节省空间。
那么我们要做如下工作,记得一步一步来哦!
第1步:
首先找到/include/taglib/tag.lib.php中,在87行找到
$row[‘link’]=$cfg_cmsurl.”/tags?”.urlencode($row[‘keyword’]);
将其修改为:
$row[‘link’]=$cfg_cmsurl.”/tags/”.urlencode($row[‘keyword’]).”.html”;
第2步:
修改分页代码部门
修改include/arc.taglist.class.php,找到分页函数,将其更换为:
注意:从429行 —->541行 用以下内容替换!
(提示:网上有文章中讲的以下代码中的”pageinfo”是错误的,应该为\”pageinfo\”,不然会有错误提示哦!已经代码测试OK!)
//获得上一页和下一页的链接
把以上内容保存为:web.config 放到网站根目录!
第4步:
生成文章,浏览!大功告成?错,有可能你会出现发下错误!
系统无此标签,可能已经移除!
你还可以尝试通过搜索程序去搜索这个关键字:前往搜索>>
如果你的浏览器没反应,请点击这里…
解决办法如下:
在网站根目录下找到tags.php 此文件,将以下代码替换掉:
$tag=trim($_SERVER[‘QUERY_STRING’]);
换成
$tag=strtolower(trim($_SERVER[‘QUERY_STRING’]));
出现这个问题的原因是IIS伪静态中文转码为UTF8,解决方法就是在tags.php中加入判断UTF8编码的语句,如果是则转换为GBK,这样就可以解决了
方法:
1.把以下代码加入到根目录下tags.php中的18行下面,记得是下面哦:
2.在第25行上面加入以下语句,也就是在$tag=FilterSearch(urldecode($tag));上面加入,记得这里是上面哦!
if(is_utf8($tag)==1) { $tag=iconv(“utf-8″,”gbk”,$tag); }
这个作用就是调用上面的函数判断编码 如果是 utf8则转为gbk;
到此,tags伪静态问题全面完美解决!
问题:
请问,最火软件编辑,我最近正在使用dedecms制作专题,发现【单条记录的模板】的内容是固定的,那么应该如何修改默认内容?
回答:
请打开以下文件进行修改:
\templets\system\spec_arclist.htm
这个文件里…建议修改前进行备份!
dedecms是目前大家使用量最为广泛的建站系统之一,最火软件也是Dedecms搭建的,最近小编在制作一个小专题时遇到了问题,专题的URL规则计划以http://www.dede58.com/z/yasuo/ 这个样子,但是生成的URL总是变成 /z/yasuo.html,后来找到许多教程都没搞定,并且还同时出现了提示“DedeTag Engine Create File False”和“专题主分类无法显示新增栏目”这两个问题,后来都一一解决了。
打开/include/channelunit.func.php文件(注意:在dede5.5中,需要打开channelunit.func.php文件),找到如下代码:
其实只是判断一下这个自定义文件是否为空,如果不为空的话就替换这个东西{aid}这个变量。保存后即可!