最近修改了部分模板,因此有相当一部分页面需要重新生成,在生成时发现Dedecms生成速度慢的受不了,CPU达到100%,小编专门找了另一台 闲置的电脑用来生成,一晚上没有关机,三万多数据,竟然用了一晚上还没有完成。在DEDE官方论坛看到这样的解决方法,试了一下,还不错。 打开include/inc/inc_fun_SpGetArcList.php,找到以下代码:
Copy to Clipboard引用的内容:[www.veryhuo.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.veryhuo.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生成速度慢的解决方法(2014年2月补充):其实很多dedecms生成HTML慢的问题,都已经不能通过上述办法解决了,最火软件小编专门从某技术博客转载了新的优化办法,经测试在10万文档下速度改善了许多(需要说明的是:如果您有上万数据,而用的虚拟主机或VPS就不用优化了,因为那是web服务器性能差。)。 主要从以下几个方面优化(如果不想动模板,建议大家直接搞数据库):
数据库 索引的优化 和 分表的处理
我先给大家从模板的地方入手处理 /---------------------模板处理优化-------------------------/
优化模板的话,主要看你自己的栏目设计到用不用二级,如果是二级的话
例如:
然后再做模板的时候尽量不要用 可以不用上下片文章标签,毕竟文章有针对性, 很少人点击上下文章那个,除非是图片站 相关内容可以取舍这个根据使用者选择
至于 推荐 热点的 可以由自由列表处理
图例子: 再文章模板里面写
图例子: {dede:include filename="自由列表生成的文件地址 ismake='no'/} 这里的ismake简单的说就是只里面的东西是否还需要处理 两个选择 yes no no就是直接显示里面的内容
{dede:include file="/temp/liuxingfushi.html" ismake='no'/} 我自己在模板的文件夹下又建立了一个temp文件,用来储存每天需要更新的文件
每天生成一次那个 自由列表的对应文件就可以了 /--------------------数据库处理优化(有效)------------------------------/
可能是因为官方有所保留吧,官方的默认索引不是最优化的,需要大家手动修改下 转载一个人的数据库优化教程
个人认为:凡是要排序的字段(比如文档主表的 sortrank、senddate、pubdate、click、goodpost、badpost)和查询条件的字段(比 如:typeid,ismake)以及文档ID都要建立索引,如果有一个没有建立,将严重影响MySQL运行效率,导致生成HTML时速度慢。
可能有些人看到那个有个教程是删除typeid的字段这个大家自己研究看看删除了索引好点还是留着好点,我自己留着,这样优化的话,最低生成速度差不多1分钟能上7到8百片文章速度。 (责任编辑:laiquliu) |