原帖地址:http://bbs.powereasy.net/dispbbs.asp?boardID=67&ID=239369&page=1
性能優(yōu)化原則:性能和功能從來(lái)都是矛盾的,在這里我們需要的是性能優(yōu)化,所以我們將盡可能放棄某些功能。以下性能優(yōu)化方法全部是從動(dòng)易系統(tǒng)本身來(lái)講的,不涉及到HTML等網(wǎng)頁(yè)代碼的優(yōu)化。
一、前臺(tái)全部生成HTML,盡可能不要使用收費(fèi)功能。無(wú)論如何,首頁(yè)一定要生成HTML。
眾所周知,ASP方式再快再怎么優(yōu)化,也快不過(guò)HTML。雖然網(wǎng)站在生成HTML時(shí)會(huì)比較占用服務(wù)器資源,但HTML頁(yè)面一旦生成后,就不再需要訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),速度幾乎不再受服務(wù)器的性能影響,而只與網(wǎng)絡(luò)帶寬有關(guān),所以我們一定要盡可能的生成HTML。生成HTML還有許多好處,比如更利于搜索引擎收錄等,這里就不多說(shuō)了。動(dòng)易系統(tǒng)可以將網(wǎng)站首頁(yè)、頻道首頁(yè)、欄目列表頁(yè)、內(nèi)容頁(yè)全部生成HTML,并且提供了多達(dá)15種目錄結(jié)構(gòu)方式,大家一定要盡可能的使用這個(gè)功能。動(dòng)易系統(tǒng)生成的HTML頁(yè)面,除了內(nèi)容頁(yè)的點(diǎn)擊數(shù)和評(píng)論兩個(gè)功能外,可以完全獨(dú)立于數(shù)據(jù)庫(kù)之外運(yùn)行。也就是說(shuō),假如你不要顯示點(diǎn)擊數(shù)和相關(guān)評(píng)論以及搜索功能的話(huà),完全可以在自己電腦上生成HTML,再FTP上傳到網(wǎng)站服務(wù)器上(服務(wù)器上不需要數(shù)據(jù)庫(kù)),實(shí)現(xiàn)真正的“全靜態(tài)”網(wǎng)站。
假如你的網(wǎng)站是收費(fèi)網(wǎng)站,也請(qǐng)啟用生成HTML功能,動(dòng)易會(huì)自動(dòng)進(jìn)行判定,對(duì)有權(quán)限設(shè)置的欄目和文章,會(huì)不生成HTML,自動(dòng)改為ASP方式。這些情況下,我們?nèi)钥梢詫⒕W(wǎng)站首頁(yè)、頻道首頁(yè)等生成HTML,以減輕服務(wù)器的壓力。
假如你的網(wǎng)站的收費(fèi)內(nèi)容比較多,或者全部是收費(fèi)內(nèi)容,那只有一個(gè)建議:升級(jí)服務(wù)器硬件配置,比如升級(jí)到雙至強(qiáng)3.0G+4G內(nèi)存+三個(gè)SATA 160G硬盤(pán)組成Raid5的磁盤(pán)陳列。
二、模板盡可能的簡(jiǎn)單。
許多網(wǎng)站非凡喜歡在首頁(yè)放上一大堆內(nèi)容,做得似乎是新浪和網(wǎng)易首頁(yè)一樣。這一點(diǎn)拋開(kāi)其他不談,就性能上來(lái)說(shuō),肯定是非常消耗資源的。大家在設(shè)計(jì)首頁(yè)模板時(shí),首頁(yè)基本上調(diào)用眾多{$GetArticleList(***)}等超級(jí)函數(shù)標(biāo)簽來(lái)做的,而這些超級(jí)函數(shù)標(biāo)簽,每一個(gè)都至少需要查詢(xún)一次數(shù)據(jù)庫(kù),多時(shí)可能會(huì)有幾十次。大家可想而知,當(dāng)你在一個(gè)頁(yè)面查詢(xún)了幾十次甚至上百次數(shù)據(jù)庫(kù),這個(gè)頁(yè)面還有性能而言嗎?
正確的做法是:網(wǎng)站首頁(yè)和頻道首頁(yè)使用{$GetArticleList(***)}等超級(jí)函數(shù)標(biāo)簽的數(shù)量盡可能不要超過(guò)10個(gè)。欄目頁(yè)和內(nèi)容頁(yè)盡可能只有一個(gè)超級(jí)函數(shù)標(biāo)簽。
三、{$GetArticleList(***)}、{$GetPicArticle(***)}等標(biāo)簽調(diào)用時(shí)盡可能指定頻道和欄目,盡量不要調(diào)用所有頻道或所有欄目的內(nèi)容。
前面說(shuō)到{$GetArticleList(***)}這些超級(jí)函數(shù)標(biāo)簽,每一個(gè)標(biāo)簽都需要至少查詢(xún)一次數(shù)據(jù)庫(kù)。這一點(diǎn)有些編程基礎(chǔ)的網(wǎng)友應(yīng)該非常輕易明白。但為什么在標(biāo)簽調(diào)用時(shí)要指定頻道和欄目呢?這是因?yàn)椋偃绮恢付l道,也就是讓系統(tǒng)從所有頻道中查詢(xún)內(nèi)容,而動(dòng)易的設(shè)計(jì)是每個(gè)頻道都可以設(shè)置是否生成HTML和目錄結(jié)構(gòu)等許多設(shè)置,這樣當(dāng)我們查詢(xún)出來(lái)的文章不在同一個(gè)頻道時(shí),就需要得到每篇文章的所屬頻道的這些設(shè)置,并根據(jù)這些設(shè)置來(lái)確定最后的文章內(nèi)容頁(yè)地址,其間可能會(huì)引發(fā)幾十次查詢(xún),性能當(dāng)然低了又低。
四、盡量不要使用“全站專(zhuān)題”功能。
這個(gè)說(shuō)法的原理和上面第三點(diǎn)的原理是一樣的。所謂全站專(zhuān)題,當(dāng)然是一個(gè)專(zhuān)題下可能有不同頻道的文章存在,這樣在全站專(zhuān)題頁(yè)面中,為了得到每個(gè)文章的內(nèi)容頁(yè)地址,都需要查詢(xún)文章所屬頻道的設(shè)置,其間也可能引發(fā)幾十次數(shù)據(jù)庫(kù)查詢(xún)。說(shuō)到這里可能有些懂編程的網(wǎng)友會(huì)問(wèn)了,為什么不使用聯(lián)合查詢(xún)等優(yōu)化方法呢?這里告訴大家,我們已經(jīng)盡可能的用了聯(lián)合查詢(xún)等優(yōu)化方法,已經(jīng)在三個(gè)表甚至四個(gè)表之間進(jìn)行聯(lián)合查詢(xún),同時(shí)還考慮了同一頻道同一欄目同一專(zhuān)題下的文章列表時(shí)的優(yōu)化查詢(xún)方法,查詢(xún)代碼的生成算法非常復(fù)雜了。
新聞熱點(diǎn)
疑難解答
圖片精選