最近修改了部分模板,因此有相當(dāng)一部分頁面需要重新生成,在生成時發(fā)現(xiàn)Dedecms生成速度慢的受不了,CPU達(dá)到100%,小編專門找了另一臺閑置的電腦用來生成,一晚上沒有關(guān)機(jī),三萬多數(shù)據(jù),竟然用了一晚上還沒有完成。在DEDE官方論壇看到這樣的解決方法,試了一下,還不錯。
打開include/inc/inc_fun_SpGetArcList.php,找到以下代碼:
將以上代碼注釋掉,并替換為下邊的代碼:
這時你再生成靜態(tài)時,會發(fā)現(xiàn)快了很多,原文中提到這是由于不再考慮副欄目,因此就快了。
其實很多dedecms生成HTML慢的問題,都已經(jīng)不能通過上述辦法解決了,最火軟件小編專門從某技術(shù)博客轉(zhuǎn)載了新的優(yōu)化辦法,經(jīng)測試在10萬文檔下速度改善了許多(需要說明的是:如果您有上萬數(shù)據(jù),而用的虛擬主機(jī)或VPS就不用優(yōu)化了,因為那是web服務(wù)器性能差。)。
主要從以下幾個方面優(yōu)化(如果不想動模板,建議大家直接搞數(shù)據(jù)庫):
數(shù)據(jù)庫 索引的優(yōu)化 和 分表的處理
模板 重復(fù)讀取數(shù)據(jù)的標(biāo)簽太多
服務(wù)器 這些一般大家都會,虛擬主機(jī)的不用,個人獨立主機(jī)的可以看看關(guān)于服務(wù)器的優(yōu)化教程
這是優(yōu)化完的效果截圖
我先給大家從模板的地方入手處理
/---------------------模板處理優(yōu)化-------------------------/
優(yōu)化模板的話,主要看你自己的欄目設(shè)計到用不用二級,如果是二級的話
大家可以建立一個主數(shù)據(jù)的調(diào)取東西例如 {圖片,css,/plus/} 這些東西可以用一個獨立的域名做
例如:
http://code.yousite.com/css/網(wǎng)站ccs
http://code.yousite.com/img/網(wǎng)站皮膚圖片
http://code.yousite.com/plus/search.php
{等等許多能固定的內(nèi)容方便以后做成大網(wǎng)站好升級的規(guī)劃}
然后再做模板的時候盡量不要用
{dede:global.cfg_templeturl/}
{dede:field name='phpurl'/}
這些還有關(guān)于 有{dede:field 的文件, 可以直接寫成實際地址,如果是有二級域名的站,寫在一個主調(diào)取的域名站上
可以不用上下片文章標(biāo)簽,畢竟文章有針對性, 很少人點擊上下文章那個,除非是圖片站
相關(guān)內(nèi)容可以取舍這個根據(jù)使用者選擇
至于 推薦 熱點的 可以由自由列表處理
例如做一個整站固定的樣式然后 用自由列表做出來
圖例子:
再文章模板里面寫
圖例子:
{dede:include filename="自由列表生成的文件地址 ismake='no'/} 這里的ismake簡單的說就是只里面的東西是否還需要處理 兩個選擇 yes no no就是直接顯示里面的內(nèi)容
{dede:include file="/temp/liuxingfushi.html" ismake='no'/} 我自己在模板的文件夾下又建立了一個temp文件,用來儲存每天需要更新的文件
如果直接在模板文件夾下面的話 不用寫/ 直接寫成{dede:include file="liuxingfushi.html" ismake='no'/} 即可
每天生成一次那個 自由列表的對應(yīng)文件就可以了
還有dedecms里面提供了一個廣告的管理插件,我總覺得也是雞肋,生成時候肯定也受到多多少少的影響
所以我的廣告都是直接自己建立好的放在一個文件夾里面{為了防止以后忘記那個文件是那個頁面的廣告可以建立一個記事本對應(yīng)廣告文件的說明}
這樣下來 模板的優(yōu)化就算是做完了 注意的就是: {盡量少用{dede:field}標(biāo)簽處理數(shù)據(jù),和一些如果能用自由列表完成的全部用自由列表完成了}
/--------------------數(shù)據(jù)庫處理優(yōu)化(有效)------------------------------/
可能是因為官方有所保留吧,官方的默認(rèn)索引不是最優(yōu)化的,需要大家手動修改下
如果是有自己獨立服務(wù)器的話建議用Navicat for MySQL 的客戶端軟件連接到MySQL Server數(shù)據(jù)上進(jìn)行管理操作。
轉(zhuǎn)載一個人的數(shù)據(jù)庫優(yōu)化教程
個人認(rèn)為:凡是要排序的字段(比如文檔主表的 sortrank、senddate、pubdate、click、goodpost、badpost)和查詢條件的字段(比如:typeid,ismake)以及文檔ID都要建立索引,如果有一個沒有建立,將嚴(yán)重影響MySQL運行效率,導(dǎo)致生成HTML時速度慢。
當(dāng)系統(tǒng)啟用了審核機(jī)制以后,標(biāo)識文檔審核屬性的字段ismake必須建立索引。
注意:click這個字段,記錄文檔點擊量,此字段值更新頻繁,建立索引后對系統(tǒng)維護(hù)索引帶來一定的負(fù)荷,我已經(jīng)試驗了不只是慢,很慢,所以大家不要給這個加索引,大家自己權(quán)衡。有人說頻繁更新的字段建立索引會容易導(dǎo)致數(shù)據(jù)庫損壞,這個我還沒有遇到過,需要考證。
下面是主表索引建立的截圖
可能有些人看到那個有個教程是刪除typeid的字段這個大家自己研究看看刪除了索引好點還是留著好點,我自己留著
這樣優(yōu)化的話,最低生成速度差不多1分鐘能上7到8百片文章速度
如果其他人還有什么優(yōu)化高招可以自己補上大家一起學(xué)習(xí)進(jìn)步