眾所周知。KesionCMS V4.0無論從功能上,還是從性能上都有了質的飛越。不再是以往版本1秒僅能生成1篇文章的系統了。但近期也發現有部分用戶提到速度并沒有多大提高?,F在我大致給大家做個總結。 1、標簽調用不合理 A、自定義靜態標簽(影響最大) 有些用戶為了方便,大量使用了自定義靜態標簽。甚至將整個頁面模板做成一個靜態標簽調用。更可怕的是在自定義靜態標簽里插入大量的系統函數標簽,自定義SQL標簽等。 經測試如果在自定義靜態標簽里插入系統函數標簽和自定義sql標簽,系統的生成速度將大打折扣.原因如下:原本只需讀取數據庫進行一次的標簽替換工作,而借助自定義靜態標簽無形中卻需要最少兩次的標簽替換工作。所以性能下降。 經以上分析:解決方法是盡量少用或不用自定義靜態標簽。絕對不在自定義靜態標簽里插入系統函數標簽和自定義SQL標簽。 B、自定義SQL標簽 用過自定義SQL標簽的朋友都知道,一個SQL標簽對應一條SQL查詢語句。SQL的構造合理與否直接影響到系統的性能。 舉例如下: 語句一:Select * from ks_article where tid in('欄目ID') order by id desc 語句二:Select top 10 id,title,AddDate From KS_Article Where Tid='欄目ID' order by id desc 并假設循環體都如以下:復制代碼 代碼如下:[loop=10] <li> <ahref="{$Field(ID,GetInfoUrl,1,1)}" target="_blank">{$Field(Title,Text,5,...,0,)}</a>({$Field(Adddate,Date,YYYY年MM月DD日)}) </li> [/loop] 以上代碼段中。顯然運行最終效果都一樣,但語句二的執行效率將優于語句一。當你的數據量越多越明顯。這里就不詳情說明原因了,有興趣的朋友可以參考:http://www.cnblogs.com/xhp5678/archive/2006/07/07/445206.html, http://www.cnblogs.com/oec2003/archive/2007/05/09/740048.html C.系統函數標簽 KesionCMS系統函數標簽作為入門級標簽,所有代碼都集成在核心代碼的函數內。已在語句上做了大量的優化工作了。原則上用戶在使用上也無需注意什么了。但如果你稍微留意,你就會發現很多標簽都支持通用。細心的朋友會發現標簽屬性里的”所性欄目”一欄中:分別有”當前欄目(通用)”、”不指定欄目”等。這時你如果指定為當前欄目(通用),那么你建的這個標簽在本模型里就是通用標簽了。這樣,你也就無需建大量的標簽。從頁減少數據庫的標簽替換次數.。 2、欄目劃分不合理 有些用戶欄目劃分極其不合理,一個欄目下的文章居然達到幾萬條數據。對于欄目下文章較多,建議將欄目進行細分。V4.0引進了模型,也可以通過自建模型,將數據分布到用戶建的數據表。從而有效的減少了單個數據表的壓力. 3、沒有定期對數據庫進行維護 使用Access數據庫的用戶請定期的對數據庫進行壓縮修復,SQL數據庫的用戶可以定期的清除日志,壓縮等.定期的維護數據庫你也可以發現系統的性能會有所提高. 什么時候標簽使用Ajax輸出 KesionCMS V4.0獨創引入標簽ajax輸出功能,但有些用戶對此并不了解,不清楚的朋友可以在此了解http://tech.163.com/05/0908/17/1T55SUPP00091K8Q.html