DEDE后台生成静态文章速度慢的原因分析

 很多人说DEDE后台生成文章的速度太慢,1万篇文章居然用了几个小时。有些说10万篇文章整个晚上还没生成完。这样很影响网站维护效率。

想让DEDE的生成文章速度提高,需要先了解DEDE在生成文章过程中都做了哪些事、涉及到哪些代码和数据。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

从\include\arc.archives.class.php文件细细看,DEDE大概做了这几件事:jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

1、调出文章的全部数据,包括AID、栏目ID、标题、作者、时间等,一部分数据待用,一部分赋值到前台显示。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

2、判断文章所用的模板。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

3、调用文章的附加数据,最主要是文章内容。如果是分类信息,则调出所有字段内容。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

4、处理文章内容中的图片,加alt值,调用缩略图。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

5、判断文章是否有分页。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

6、调取文章的TAG和TAG的链接。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

7、获得上一篇、下一篇文章的ID、标题、链接。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

8、获得相关文章的ID、标题、链接。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

9、替换文章中的关键词。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

前面5个步骤都是必须的,也用不了多少资源,不用管,也无法做优化。调取TAG也是必须的,一般只有三四个TAG,也是费不了多少资源。上一篇、下一篇及相关文章有点耗资源,尽量把范围缩小一点好。比如不要上下篇,相关文章仅限于本栏目,可以提高查询速度。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

最耗资源的是文章中的关键词替换。默认的替换程序是先判断TAG,如果有TAG,就按TAG选择关键词,再替换。这个方式很多站长都不喜欢,因为替换范围太有限了。如果没设置TAG,就不会替换。如果把代码修改为跟TAG无关,只要文章中的词汇与预先设置的关键词表匹配就替换,那查询量就非常大:要先把整个关键词表调出来,然后每个词与整篇文章匹配一遍,配上就替换,否则就不替换。如果后台设置了1000个关键词,那这篇文章在生成静态的过程中,就重复判断1000次才完成。如果要生成1万篇文章,那么光关键词替换这里,就要判断1000万次,速度被拖得非常非常慢。如果关键词设置得更多,则速度更慢。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

为什么替换文章中的关键词?基本上都是为了SEO,让蜘蛛多爬一些页面。但不是说你设置了链接,蜘蛛就会乖乖的个个都去爬的。如果是相关性不太大的页面,还会产生负作用。我感觉一篇文章有TAG、相关文章这两项,就已经足够了,不需要添加更多的关键词链接。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

所以我现在已经禁止了关键词替换(后台可选择),然后再生成文章,速度就非常快。1398 总用时:1.95 分钟,照此推算,生成1万篇文章最多20分钟,10万篇也就三个多小时。jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

 
 
jaO 迪尔课堂-官网-免费自学网站-迪尔掌上课堂

扫一扫手机访问