使用織夢建站時候發(fā)現(xiàn),當數(shù)據(jù)量達到一定級別的時候,會出現(xiàn)整個系統(tǒng)異常的緩慢。有一個朋友有大概40萬條的數(shù)據(jù)的樣子。網(wǎng)站就變得非常緩慢,生成靜態(tài)頁面時更是吃力的不行,讓你等個夠。織夢無憂網(wǎng)分享以下方法解決這個問題。
方案一:數(shù)據(jù)分表存儲,不要把所有數(shù)據(jù)存于一個表
早期的織夢所有數(shù)據(jù)都是存儲于一個表,并沒有獨立 addonarticle這樣的附件表。從大概V5.0版本開始,出現(xiàn)了分表存儲。所以,可以參考官方的整個升級變化,可以把網(wǎng)站的內(nèi)容都分表處理,如果數(shù)據(jù)量非常大的話,推薦一個欄目一個表。如果數(shù)據(jù)量不是很大,可以一個頂級欄目一個表。(大概的一個量,在100萬級別的話,推薦一個頂級欄目一個表,子欄目不多的情況下,如果在100萬-500萬級別,推薦一個欄目一個表,如果是500萬往上走,換系統(tǒng)吧,織夢已經(jīng)滿足不了你了。。)
方案二:影響html生成速度的第一要素:arclist,優(yōu)化arclist標簽
其實在織夢v5.0的時候,織夢官方做了緩存機制,極大了優(yōu)化了。但是從數(shù)據(jù)監(jiān)控來看,影響靜態(tài)化生成的第一要素,當屬arclist標簽。很多站長喜歡用arclist標簽來調(diào)用最新文章、熱門文章、推薦和頭條等,同時arclist標簽每次都帶著一大堆條件去主表中查詢,可能還會關(guān)聯(lián)附加表,對一次性生 成大量文章來說,只是重復使用arclist標簽對數(shù)據(jù)庫重復查詢罷了,自然會花去大量時間。
優(yōu)化方法①、DedeCMS新的版本中,生成HTML時arclist標簽會直接調(diào)用緩存數(shù)據(jù),省去arclist標簽重復查詢數(shù)據(jù)庫的時間,頓時讓上述工作變得輕松起來,生成速度得到提升也是必然的。你只用在系統(tǒng)參數(shù)->性能選項中,找到arclist標簽調(diào)用緩存(cfg_index_cache)(0 不啟用,大于0值為多少秒),根據(jù)自身實際需求調(diào)整緩存調(diào)用時間。
優(yōu)化方法②、我們可以通過freelist(自由列表)功能事先生成最新、熱門、推薦、頭條等文章列表頁面,然后用include標簽直接引入到模板里,標簽格式為:{dede:include file=’文章列表頁面文件名稱’ ismake=’ no’/}。
另外,系統(tǒng)參數(shù)-核心設(shè)置里默認的關(guān)鍵字替換功能(cfg_keyword_replace)是開啟的,如果文章是采集過來的,還是關(guān)閉的好,有很多關(guān)鍵字都毫無意義,甚至會有亂碼導致生成出錯,關(guān)掉此功能對提高系統(tǒng)性能是有一定幫助的。
方案三:優(yōu)化織夢數(shù)據(jù)表索引
在Mysql中,索引無疑是最有效的加快查詢的工具了,一個合理的索引組合會極大地提升 你的查詢效率和系統(tǒng)性能。言歸正傳,你可以通過phpmyadmin或是一個叫Navicat for MySQL的軟件(推薦)來管理你的數(shù)據(jù)庫。
分析DEDECMS數(shù)據(jù)表信息,不難發(fā)現(xiàn),所有的文章數(shù)據(jù)是存儲在dede_archives和dede_arctiny,以及對應的 dede_addonarticle附加表中的。生成HTML時,sql查詢主要圍繞這三張表來的。個人認為,凡是要排序的字段和查詢條件的字段及文檔 ID都要建立索引,如果一個沒有建立,將會嚴重影響MySQL的查詢效率,最終導致生成速度變慢。DEDECMS數(shù)據(jù)表索引建立方法如下:
a)dede_archives,是文章的主表,存儲文章標題、關(guān)鍵 字、描述、發(fā)布時間等信息,10萬數(shù)據(jù)的表大小可能在30MB左右,也是我們優(yōu)化的重點。你需要建立的索引字段有,id、channel、 pubdate、sortrank、ismake、typeid、mainindex、lastpost;其中,像系統(tǒng)默認的mainindex和 lastpost這兩個組合索引,個人認為存在意義不大,可以刪除,自己掂量。需要注意的是,click字段,是文檔的點擊數(shù),此字段更新頻率,建立索引 后會對系統(tǒng)維護帶來一定壓力,另外也有人說頻繁更新的建立索引會容易導致數(shù)據(jù)庫損壞,也無從查證。個人建議click字段保留,不建立索引。
b)dede_arctiny,這個表比較小,10萬數(shù)據(jù)的表大小不到5MB,建議不建立索引,可以將自帶的刪除掉,或者只保留sortrank索引。
c)dede_addonarticle,是文章附加表,主要是用來存儲文章內(nèi)容的,不作索引考慮。
方案四:搭建勝過Apache十倍的高并發(fā)Web服務(wù)器 Nginx + PHP(FastCGI)
Web服務(wù)器的重要性不需多言,對提升網(wǎng)站性能有著直接影響。
在PHP開發(fā)中,最常用的環(huán)境莫過于在 LAMP:Linux+apache+mysql+php了,在windows下有WAMP:Windows+apache/iis+mysql+php,我的WEB站點也是在這種環(huán)境下開發(fā)的。Nginx + PHP(FastCGI)無疑是你最好的選擇,在Windows和Linux下都可以安裝,只是Windows下的Nginx表現(xiàn)要遠遠遜色于Linux。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 織夢DedeCMS網(wǎng)站提速優(yōu)化方案