你使用帝國CMS當(dāng)網(wǎng)站數(shù)據(jù)量過大或者用了某些標(biāo)簽后發(fā)現(xiàn)生成速度異常的慢,甚至有時(shí)候會超時(shí)報(bào)錯(cuò)Internal Server Error HTTP500錯(cuò)誤。
那么出現(xiàn)這類問題該如何解決呢?
首先:帝國cms報(bào)Internal Server Error HTTP500錯(cuò)誤是比較好解決的,兩步解決
1.在后臺基本屬性里面-設(shè)置后臺PHP超時(shí)時(shí)間提高點(diǎn)

2.在參數(shù)設(shè)置-分組生成-信息生成魅族和更新相關(guān)鏈接每組 由默認(rèn)的100往下調(diào)整即可

對于帝國cms生成數(shù)據(jù)速度慢需要具體分析
其實(shí)影響帝國CMS數(shù)據(jù)生成速度有4個(gè)因素
1、服務(wù)器配置及帶寬
2、運(yùn)行環(huán)境
3、模板:標(biāo)簽數(shù)量及復(fù)雜度
4、數(shù)據(jù)表與字段配置不合理
其中1和2的優(yōu)化與服務(wù)器本身相關(guān)的,提高帶寬服務(wù)器可以解決些許問題,但是更多時(shí)候我們不想做這方面的投入,所以下面我們主要介紹帝國CMS相關(guān)的:關(guān)于3和4的優(yōu)化說明。
一、帝國CMS大數(shù)據(jù)量下優(yōu)化介紹:
盡量分表、減少主表字段、啟用優(yōu)化方案、模板優(yōu)化。其中最主要是模板優(yōu)化,比如:你模板加rand()隨機(jī)之類調(diào)用,數(shù)據(jù)超1萬馬上慢。【不怕螞蟻一樣的數(shù)據(jù),就怕烏龜一樣的模板】
如果必須要使用rand推薦使用下面比較高效的調(diào)用方法
<?php
$randnum=10; //隨機(jī)數(shù)量
$randids='';
$randdh='';
for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(1,100000); //1為最小ID,100000為最大ID
$randdh=',';
}
?>
[e:loop={欄目ID,顯示條數(shù),操作類型,只顯示有標(biāo)題圖片,"id in ($randids)"}]
模板代碼內(nèi)容
[/e:loop]
二、模板優(yōu)化原則:
模板優(yōu)化原則是標(biāo)簽越少越好,如果確實(shí)標(biāo)簽要很多,可以把調(diào)用標(biāo)簽放到自定義頁面來生成調(diào)用內(nèi)容,模板里include自定義頁面文件,此方法最大優(yōu)化可使模板零標(biāo)簽,效率最高。
include自定義頁面方法:(自定義頁面在后臺>“欄目”>“自定義頁面”里增加)
include 自定義頁面有兩種方法:
第一種:頁面生成.html文件情況下,模板用<?php include(ECMS_PATH.'userpage.html');?>調(diào)用文件。
第二種:頁面生成.shtml文件,用<!–#include file="/userpage.html"–>調(diào)用文件。
三、數(shù)據(jù)表與字段配置優(yōu)化:
1、數(shù)據(jù)表優(yōu)化
欄目盡量獨(dú)立數(shù)據(jù)主表。
副表達(dá)到一定大小就對副表進(jìn)行分表。
2、字段優(yōu)化:
盡量減少主表字段。
對于字段內(nèi)容的字?jǐn)?shù)非常多,如小說、論文等,建議用存文本。
數(shù)據(jù)表自定義字段最好不要太多。
3、減少信息數(shù)據(jù)表大小方法:
如果你的mysql數(shù)據(jù)庫容量或服務(wù)器內(nèi)存有限,可以用以下方法來減少信息數(shù)據(jù)表大小:
修改title字段把字段類型從char定長格式改為varchar變長格式即可。char是定長,不論字段內(nèi)容多少,都是固定大小;varchar是變長,存多少就是多大小。






