DedeCMS性能优化方案简单几招让你DedeCMS提速N倍
今天跟版网为大家分享一下DedeCMS数据负载性能优化的方法。织梦的模板简单易用,标签调用更是灵活,二次开发也非常方便。可是,站点数据庞大起来的时候(30多 万条),后台就会变得异常缓慢,生成HTML
顺晟科技
2021-06-16 10:54:43
358
今天,我想和大家分享一下优化DedeCMS数据加载性能的方法。梦幻编织的模板使用方便,标签调用更加灵活,二次开发也非常方便。但是当站点数据巨大(超过30万块)时,后台会变得极其缓慢,生成HTML非常困难。毫不夸张地说,头发是白色的。这让我对DedeCMS的数据加载性能产生了质疑?
DedeCMS数据加载性能优化方案
在查阅了相关数据后,结合自己站点的实际情况,我们还是总结出了一个好的DedeCMS的数据负载性能优化方案。别废话了,说重点。
1)数据表存储降低了数据表的压力
从Dreamweaver V5版本开始,DedeCMS开始在不同的表中存储,以提高系统负载性能,确实在一定程度上缓解了数据压力。现在最新版本的DedeCMS V5.7已经出来了。据官方介绍,V5.7调整了缓存处理,处理50万以内的数据没问题。至于真实性,是不可能研究的。如果官方说法属实,对中小站长来说确实是好事,不用太担心一百万级以内的正常数据。
子表存储怎么操作?
如果你只是一个个人或者企业之类的小站点,数据量会支持几万,那么完全不需要考虑表存储,DedeCMS完全可以。子表操作很简单,你只需要直接进入后台,新建一个模型,然后设置一列对应一个模型。个人建议大通道列和子列对应一个模型,根据你的列可能存储的数据进行规划,考虑一个实用的子表方案。
2)修改系统参数arclist标签以进行替代优化
在DEDEECMS的V5版本中,当局已经做了很大的努力来优化和引入缓存机制。实际上,影响HTML生成速度的罪魁祸首是模板中的arclist标签。很多站长喜欢用arclist标签来调用最新、热门、推荐、头条等文章列表。然而,arclist标签总是携带许多条件在主表中进行查询,并且还可能与附加表相关联。对于一次生成大量的文章,使用arclist标签重复查询数据库只会花费大量的时间。现在在新版本的DedeCMS中,在生成HTML时,arclist标签会直接调用缓存的数据,这样就节省了arclist标签反复查询数据库的时间,使得上面的工作更加容易,生成速度也是必然的。您只需在系统参数-性能选项(0未启用,大于0的值为多少秒)中找到arclist标记调用缓存(CFG _ index _ cache),并根据您的实际需要调整缓存调用时间。
其实还有一个解决办法,就是麻烦一点,但是性能提升非常显著。arclist标签调用缓存在一定程度上提高了HTML生成速度,但还是需要判断。如果这个时间可以节省,会更快吗?答案是肯定的决心和双重否定。我们可以通过freelist功能提前生成最新、热门、推荐、头条等文章列表页面,然后用include标签直接引入模板。标记格式为:{dede:include file='文章列表页文件名' ismake=' no'/}。如果你的站长数据庞大,服务器硬件配置一般,为什么不试试呢?
此外,系统参数-核心设置中的默认关键字替换功能(cfg_keyword_replace)已打开。如果文章被收藏了,还不如关掉,很多关键词毫无意义甚至乱码,可能导致生成错误。关闭此功能有助于提高系统性能。
3)数据库表索引优化的性能大大提高
为什么要优化DedeCMS数据库表的索引?很简单,在Mysql中,索引无疑是最有效的加速查询的工具,索引的合理组合会大大提高你的查询效率和系统性能。反正你可以通过phpmyadmin或者一个叫Navicat的MySQL的软件来管理你的数据库(推荐)。
根据对DEDECMS数据表信息的分析,不难发现所有的文章数据都存储在dede_archives、dede _牛蒡ny和相应的dede_addonarticle附加表中。生成HTML时,sql查询主要来自这三个表。个人认为所有要排序的字段,查询条件的字段,单据ID的字段都要进行索引。一个不建立,MySQL的查询效率会受到严重影响,生成速度最终会变慢。DEDECMS数据表的索引建立方法如下:
A)dede_archives是文章的主表,存储文章的标题、关键词、描述、发表时间等信息。10万数据的表大小可能在30MB左右,这也是我们优化的重点。您需要创建的索引字段有id、频道、发布日期、sortrank、ismake、typeid、mainindex、lastpost;其中,mainindex和lastpost这两个组合索引是系统默认的索引,意义不大,可以自行删除和加权。需要注意的是,点击字段是文档的点击次数,这个字段经常更新,索引后会给系统维护带来一定的压力。另外,有人说频繁更新的索引容易导致数据库损坏,无法验证。个人建议保留点击字段,不建立索引。
为重复数据消除模块数据表编制索引
b)dede _牛蒡ny,这个表比较小,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,我的网站也是在这个环境下开发的。Nginx PHP(FastCGI)无疑是你更好的选择。Windows和Linux下都可以安装,但Windows下NGinx性能远不如Linux。
DedeCMS系统的运行依赖于PHP MYSQL环境,所以对于一个运行速度快、资源消耗低的Web服务器来说,提高系统性能有多重要。如果条件允许,建议使用Nginx PHP(FastCGI)作为WEB服务器环境。
以上是DedeCMS数据加载性能的优化方案,针对的是拥有独立web服务器或控制权限的网管。至于虚拟主机,这个速度很难达到,但也可以作为DedeCMS性能优化的参考,我自己也有思考过。当然,如果有更好的方法可以提高DedeCMS的数据加载性能,我也愿意分享。其实一般情况下(不包括采集),一般站点的数据量也是有限的,所以20万是惊人的吧?我觉得上面的DedeCMS优化方案就够了。说到百万千万的数据,不是一般站长需要考虑的。
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06