• 售前

  • 售后

热门帖子
入门百科

DedeCMS大数据负载性能优化方案(简单几招让你提速N倍)

[复制链接]
123456806 显示全部楼层 发表于 2021-8-16 17:57:38 |阅读模式 打印 上一主题 下一主题
打仗织梦也有三年多时间了,对它可谓是又爱又恨。它的模板简朴易用,标签调用更是灵活,二次开发也非常方便。可是,站点数据庞大起来的时候(30多 万条),配景就会变得非常缓慢,天生HTML也很吃力,毫不浮夸的说,头发都等白了。这不禁让我对DedeCMS数据负载性能产生了置疑?
查阅了相关资料,团结自身站点现实,还是总结出了一套不错的DedeCMS数据负载性能优化方案。废话不说,直接进入正题。
1)数据分表存储 减轻数据单表压力
自织梦V5版本起,DedeCMS开始分表存储以进步系统负载性能,确着实肯定程度上缓解了数据压力。如今最新的DedeCMS V5.7版本已经出来了,据官方介绍,V5.7调解了缓存处理,应付50万以内数据没问题,至于真实性无从考究。假如官方陈述属实的话,对于中小型站长来 说确实是件好事,正常百万级内数据也不消过多担心了。
分表存储怎样操纵?
假如你只是个人或企业等小型站点,数据量也就撑死上万,那完全不消考虑分表存储,DedeCMS完全可以胜任。分表操纵很简朴,你只须要直接进入后 台,新建模型,然后设置一个栏目对应一个模型。个人发起一个大的频道栏目及子栏目对应一个模型,这要根据你的栏目可能存储的数据来做操持,考虑现实一点的 分表方案。
发起根据id自动分表尤其是文章模块。
2)修改系统参数 arclist标签另类优化
在DedeCMS V5版本中,官方实在已经做了努力优化,引入了缓存机制。实在影响HTML天生速度的罪魁罪魁还是模板中的arclist标签,许多站长喜好用 arclist标签来调用最新、热门、保举、头条等文章列表,但是arclist标签每次都带着一大堆条件去主表中查询,可能还会关联附加表,对一次性生 成大量文章来说,只是重复使用arclist标签对数据库重复查询罢了,天然会花去大量时间。如今DedeCMS新的版本中,天生HTML时arclist标签会直接调用缓存数据,省去arclist标签重复查询数据库的时间,顿时让上述工作变得轻松起来,天生速度得到提升也是肯定的。你只用在系统参数->性能选项中,找到arclist标签调用缓存(cfg_index_cache)(0 不启用,大于0值为多少秒),根据自身现实需求调解缓存调用时间。
实在,另有一种办理办法,就是贫苦了一些,但是对性能提升黑白常显著的。arclist 标签调用缓存虽说肯定程度上进步了HTML天生速度,但是还是须要对arclist缓存进行判断,假如能把这部分时间也省去,那是不是会更快呢?答案是肯 定确定以及双重否定。我们可以通过freelist(自由列表)功能事天赋生最新、热门、保举、头条等文章列表页面,然后用include标签直接引入到 模板里,标签格式为:{dede:include file=’文章列表页面文件名称’ ismake=’ no’/}。假如你的站长数据很庞大,服务器硬件设置也一样平常的话,何不实验一下呢?
另外,系统参数-核心设置里默认的关键字更换功能(cfg_keyword_replace)是开启的,假如文章是采集过来的,还是关闭的好,有许多关键字都毫偶尔义,甚至会有乱码导致天生出错,关掉此功能对进步系统性能是有肯定资助的。
3)数据库表索引优化 性能大幅提升
为什么要对DedeCMS数据库表索引进行优化呢?很简朴,在Mysql中,索引无疑是最有效的加快查询的工具了,一个公道的索引组合会极大地提升 你的查询服从和系统性能。言归正传,你可以通过phpmyadmin或是一个叫Navicat for MySQL的软件(保举)来管理你的数据库。
分析DEDECMS数据表信息,不难发现,全部的文章数据是存储在dede_archives和dede_arctiny,以及对应的 dede_addonarticle附加表中的。天生HTML时,sql查询重要围绕这三张表来的。个人认为,凡是要排序的字段和查询条件的字段及文档 ID都要建立索引,假如一个没有建立,将会严峻影响MySQL的查询服从,终极导致天生速度变慢。DEDECMS数据表索引建立方法如下:
a)dede_archives,是文章的主表,存储文章标题、关键 字、形貌、发布时间等信息,10万数据的表巨细可能在30MB左右,也是我们优化的重点。你须要建立的索引字段有,id、channel、 pubdate、sortrank、ismake、typeid、mainindex、lastpost;其中,像系统默认的mainindex和 lastpost这两个组合索引,个人认为存在意义不大,可以删除,本身掂量。须要注意的是,click字段,是文档的点击数,此字段更新频率,建立索引 后会对系统维护带来肯定压力,另外也有人说频仍更新的建立索引会容易导致数据库粉碎,也无从查证。个人发起click字段保存,不建立索引。
b)dede_arctiny,这个表比较小,10万数据的表巨细不到5MB,发起不建立索引,可以将自带的删除掉,或者只保存sortrank索引。
c)dede_addonarticle,是文章附加表,重要是用来存储文章内容的,不作索引考虑。
以上索引成功建立后,再测试下你的HTML天生速度,是不是让你精力一振呢?
4)搭建赛过Apache十倍的高并发Web服务器 Nginx + PHP(FastCGI)
Web服务器的紧张性不需多言,对提升网站性能有着直接影响。在PHP开发中,最常用的环境莫过于在 LAMP:Linux+apache+mysql+php了,在windows下有 WAMP:Windows+apache/iis+mysql+php,我的WEB站点也是在这种环境下开发的。Nginx + PHP(FastCGI)无疑是你最好的选择,在Windows和Linux下都可以安装,只是Windows下的Nginx体现要远远逊色于Linux。
DedeCMS系统运行是依赖PHP+MYSQL环境的,以是说一个运行快、资源斲丧小的Web服务器对提升系统性能有多紧张。假如条件允许的条件,还是保举下Nginx + PHP(FastCGI)这种WEB服务器环境。
以上就是DedeCMS数据负载性能的优化方案,针对的是有独立WEB服务器或控制权限的站长,至于虚拟主机想 到达这个速度还是很费劲的,但是也可以作为DedeCMS性能优化的一个参考依据,本身琢磨琢磨了。固然,假如有更好的进步DedeCMS数据负载性能的 办法,还渴望分享下。实在,正常环境下(不包括采集),一样平常站点数据量也都有限,20万就很了不得了吧?我想,以上的DedeCMS优化方案足以办理了。 真到了百万级、千万级数据的时候,也不是一样平常站长须要考虑的事了。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作