你使用帝国CMS当网站数据量过大或者用了某些标签后发现生成速度异常的慢,甚至有时候会超时报错Internal Server Error HTTP500错误。
那么出现这类问题该如何解决呢?
首先:帝国cms报Internal Server Error HTTP500错误是比较好解决的,两步解决
1.在后台基本属性里面-设置后台PHP超时时间提高点
2.在参数设置-分组生成-信息生成魅族和更新相关链接每组 由默认的100往下调整即可
对于帝国cms生成数据速度慢需要具体分析
其实影响帝国CMS数据生成速度有4个因素
1、服务器配置及带宽
2、运行环境
3、模板:标签数量及复杂度
4、数据表与字段配置不合理
其中1和2的优化与服务器本身相关的,提高带宽服务器可以解决些许问题,但是更多时候我们不想做这方面的投入,所以下面我们主要介绍帝国CMS相关的:关于3和4的优化说明。
一、帝国CMS大数据量下优化介绍:
尽量分表、减少主表字段、启用优化方案、模板优化。其中最主要是模板优化,比如:你模板加rand()随机之类调用,数据超1万马上慢。【不怕蚂蚁一样的数据,就怕乌龟一样的模板】
如果必须要使用rand推荐使用下面比较高效的调用方法
<?php $randnum=10; //随机数量 $randids=''; $randdh=''; for($i=1;$i<=$randnum;$i++) { $randids.=$randdh.rand(1,100000); //1为最小ID,100000为最大ID $randdh=','; } ?> [e:loop={栏目ID,显示条数,操作类型,只显示有标题图片,"id in ($randids)"}] 模板代码内容 [/e:loop]
二、模板优化原则:
模板优化原则是标签越少越好,如果确实标签要很多,可以把调用标签放到自定义页面来生成调用内容,模板里include自定义页面文件,此方法最大优化可使模板零标签,效率最高。
include自定义页面方法:(自定义页面在后台>“栏目”>“自定义页面”里增加)
include 自定义页面有两种方法:
第一种:页面生成.html文件情况下,模板用<?php include(ECMS_PATH.'userpage.html');?>调用文件。
第二种:页面生成.shtml文件,用<!--#include file="/userpage.html"-->调用文件。
三、数据表与字段配置优化:
1、数据表优化
栏目尽量独立数据主表。
副表达到一定大小就对副表进行分表。
2、字段优化:
尽量减少主表字段。
对于字段内容的字数非常多,如小说、论文等,建议用存文本。
数据表自定义字段最好不要太多。
3、减少信息数据表大小方法:
如果你的mysql数据库容量或服务器内存有限,可以用以下方法来减少信息数据表大小:
修改title字段把字段类型从char定长格式改为varchar变长格式即可。char是定长,不论字段内容多少,都是固定大小;varchar是变长,存多少就是多大小。
来源:如果上文看不懂,请点击查看本图片: