你使用帝國(guó)CMS當(dāng)網(wǎng)站數(shù)據(jù)量過(guò)大或者用了某些標(biāo)簽后發(fā)現(xiàn)生成速度異常的慢,甚至有時(shí)候會(huì)超時(shí)報(bào)錯(cuò)Internal Server Error HTTP500錯(cuò)誤。
那么出現(xiàn)這類(lèi)問(wèn)題該如何解決呢?
首先:帝國(guó)cms報(bào)Internal Server Error HTTP500錯(cuò)誤是比較好解決的,兩步解決
1.在后臺(tái)基本屬性里面-設(shè)置后臺(tái)PHP超時(shí)時(shí)間提高點(diǎn)
2.在參數(shù)設(shè)置-分組生成-信息生成魅族和更新相關(guān)鏈接每組 由默認(rèn)的100往下調(diào)整即可
對(duì)于帝國(guó)cms生成數(shù)據(jù)速度慢需要具體分析
其實(shí)影響帝國(guó)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ù)器可以解決些許問(wèn)題,但是更多時(shí)候我們不想做這方面的投入,所以下面我們主要介紹帝國(guó)CMS相關(guān)的:關(guān)于3和4的優(yōu)化說(shuō)明。
一、帝國(guó)CMS大數(shù)據(jù)量下優(yōu)化介紹:
盡量分表、減少主表字段、啟用優(yōu)化方案、模板優(yōu)化。其中最主要是模板優(yōu)化,比如:你模板加rand()隨機(jī)之類(lèi)調(diào)用,數(shù)據(jù)超1萬(wàn)馬上慢。【不怕螞蟻一樣的數(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ù),操作類(lèi)型,只顯示有標(biāo)題圖片,"id in ($randids)"}]
模板代碼內(nèi)容
[/e:loop]
二、模板優(yōu)化原則:
模板優(yōu)化原則是標(biāo)簽越少越好,如果確實(shí)標(biāo)簽要很多,可以把調(diào)用標(biāo)簽放到自定義頁(yè)面來(lái)生成調(diào)用內(nèi)容,模板里include自定義頁(yè)面文件,此方法最大優(yōu)化可使模板零標(biāo)簽,效率最高。
include自定義頁(yè)面方法:(自定義頁(yè)面在后臺(tái)>“欄目”>“自定義頁(yè)面”里增加)
include 自定義頁(yè)面有兩種方法:
第一種:頁(yè)面生成.html文件情況下,模板用<?php include(ECMS_PATH.'userpage.html');?>調(diào)用文件。
第二種:頁(yè)面生成.shtml文件,用<!–#include file="/userpage.html"–>調(diào)用文件。
三、數(shù)據(jù)表與字段配置優(yōu)化:
1、數(shù)據(jù)表優(yōu)化
欄目盡量獨(dú)立數(shù)據(jù)主表。
副表達(dá)到一定大小就對(duì)副表進(jìn)行分表。
2、字段優(yōu)化:
盡量減少主表字段。
對(duì)于字段內(nèi)容的字?jǐn)?shù)非常多,如小說(shuō)、論文等,建議用存文本。
數(shù)據(jù)表自定義字段最好不要太多。
3、減少信息數(shù)據(jù)表大小方法:
如果你的mysql數(shù)據(jù)庫(kù)容量或服務(wù)器內(nèi)存有限,可以用以下方法來(lái)減少信息數(shù)據(jù)表大小:
修改title字段把字段類(lèi)型從char定長(zhǎng)格式改為varchar變長(zhǎng)格式即可。char是定長(zhǎng),不論字段內(nèi)容多少,都是固定大小;varchar是變長(zhǎng),存多少就是多大小。