淺談如何提高網(wǎng)站的訪問速度
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,建站技術(shù)已經(jīng)不在局限于一些大的網(wǎng)絡(luò)技術(shù)公司了,實(shí)際上個(gè)人已經(jīng)架設(shè)自己的網(wǎng)站放到了互聯(lián)網(wǎng)上供人訪問。但是隨著訪問量的不斷增大,核心問題已經(jīng)不是頁面的美觀和使用,而是網(wǎng)站的訪問速度了。網(wǎng)站訪問速度的快慢對網(wǎng)站的運(yùn)營來說是很重要的。網(wǎng)站訪問速度太慢的話,有一部分瀏覽者就會離開網(wǎng)站而不會繼續(xù)等待網(wǎng)站顯示完。下面我就介紹一些提高網(wǎng)站訪問速度的常用辦法。
一、前臺頁面的優(yōu)化:
簡化代碼和內(nèi)容
網(wǎng)速慢也是影響網(wǎng)站訪問速度的原因之一。這就要求我們不要在網(wǎng)頁里面放太多的東西,關(guān)于網(wǎng)頁的文字,我們可以不進(jìn)行考慮,但是圖片和動(dòng)畫等等,就是要考慮的內(nèi)容了,尤其是動(dòng)畫,對網(wǎng)站的訪問速度有很大影響,如果不是很必要,就不要放置太多的動(dòng)畫。簡潔的頁面對訪問者是很友好的。
不把大部分內(nèi)容放到表格
一些不恰當(dāng)?shù)木W(wǎng)頁布局會拖慢網(wǎng)站的訪問速度,比如將所有的網(wǎng)頁內(nèi)容放到一個(gè)表格里面(因?yàn)檫@樣好排版)。其實(shí)這種方式是很不好的因?yàn)楸砀裰挥性趦?nèi)容全部顯示完之后才會顯示出來。現(xiàn)在頁面的制作基本都是適用div+css模式,這種模式節(jié)省代碼冗余,能大大的提高網(wǎng)頁的瀏覽速度。
二、數(shù)據(jù)庫的優(yōu)化:
很多網(wǎng)站都是動(dòng)態(tài)顯示數(shù)據(jù),比如說:社區(qū)、sns類網(wǎng)站等這些不能完全生成html靜態(tài)頁面,隨著訪問量的增加,對于數(shù)據(jù)庫的要求就越來越高。當(dāng)發(fā)現(xiàn)動(dòng)態(tài)網(wǎng)站訪問緩慢,可以試著一下方法檢查并優(yōu)化。
數(shù)據(jù)庫索引:
這個(gè)是重要中的重要,數(shù)據(jù)查詢的效率是非依賴于表的索引,如果沒有好的索引甚至沒建立索引,表的數(shù)量級達(dá)到一定程度都會大大影響數(shù)據(jù)庫的執(zhí)行效率,所以必須檢查所以是非建立好。對于常用的查詢條件都要建立索引,并查看數(shù)據(jù)庫查詢分析器,查看那些語句緩慢,對應(yīng)建立索引。
給數(shù)據(jù)表瘦身:
數(shù)據(jù)表的量達(dá)到一定程度,索引就不管用了。建議一個(gè)表不要超過千萬,F(xiàn)在一般適用的mysql數(shù)據(jù)庫,千萬以上的查詢效率都已經(jīng)不佳了?梢圆捎梅直矸謳斓姆绞,將一些久數(shù)據(jù)庫剝離,以減輕數(shù)據(jù)表容量上的壓力。
優(yōu)化編寫程序中查詢的語句:
查詢數(shù)據(jù)庫的語句盡量使用最優(yōu)的語句進(jìn)行查詢,因?yàn)橛行⿵?fù)合查詢同樣會占用大量的數(shù)據(jù)庫開銷,如果執(zhí)行時(shí)間就了,加上網(wǎng)站的并發(fā)量大的話很容易導(dǎo)致數(shù)據(jù)死鎖,從而導(dǎo)致網(wǎng)站的癱瘓。可以使用存儲過程,這樣能很好的解決這個(gè)問題。
數(shù)據(jù)庫集群和庫表散列:
大型網(wǎng)站都有復(fù)雜的應(yīng)用,這些應(yīng)用必須使用數(shù)據(jù)庫,那么在面對大量訪問的時(shí)候,數(shù)據(jù)庫的瓶頸很快就能顯現(xiàn)出來,這時(shí)一臺數(shù)據(jù)庫將很快無法滿足應(yīng)用,于是我們需要使用數(shù)據(jù)庫集群或者庫表散列。
在數(shù)據(jù)庫集群方面,很多數(shù)據(jù)庫都有自己的解決方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是類似的方案,您使用了什么樣的DB,就參考相應(yīng)的解決方案來實(shí)施即可。
上面提到的數(shù)據(jù)庫集群由于在架構(gòu)、成本、擴(kuò)張性方面都會受到所采用DB類型的限制,于是我們需要從應(yīng)用程序的角度來考慮改善系統(tǒng)架構(gòu),庫表散列是常用并且最有效的解決方案。我們在應(yīng)用程序中安裝業(yè)務(wù)和應(yīng)用或者功能模塊將數(shù)據(jù)庫進(jìn)行分離,不同的模塊對應(yīng)不同的數(shù)據(jù)庫或者表,再按照一定的策略對某個(gè)頁面或者功能進(jìn)行更小的數(shù)據(jù)庫散列,比如用戶表,按照用戶ID進(jìn)行表散列,這樣就能夠低成本的提升系統(tǒng)的性能并且有很好的擴(kuò)展性。sohu的論壇就是采用了這樣的架構(gòu),將論壇的用戶、設(shè)置、帖子等信息進(jìn)行數(shù)據(jù)庫分離,然后對帖子、用戶按照板塊和ID進(jìn)行散列數(shù)據(jù)庫和表,最終可以在配置文件中進(jìn)行簡單的配置便能讓系統(tǒng)隨時(shí)增加一臺低成本的數(shù)據(jù)庫進(jìn)來補(bǔ)充系統(tǒng)性能。
三、服務(wù)器配置
圖片服務(wù)器分離:
大家知道,對于Web服務(wù)器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,于是我們有必要將圖片與頁面進(jìn)行分離,這是基本上大型網(wǎng)站都會采用的策略,他們都有獨(dú)立的圖片服務(wù)器,甚至很多臺圖片服務(wù)器。這樣的架構(gòu)可以降低提供頁面訪問請求的服務(wù)器系統(tǒng)壓力,并且可以保證系統(tǒng)不會因?yàn)閳D片問題而崩潰,在應(yīng)用服務(wù)器和圖片服務(wù)器上,可以進(jìn)行不同的配置優(yōu)化,比如apache在配置ContentType的時(shí)候可以盡量少支持,盡可能少的 LoadModule,保證更高的系統(tǒng)消耗和執(zhí)行效率。
http壓縮:
HTTP 壓縮,HTTP 1.1 協(xié)議規(guī)范的一種建議,用來改進(jìn)頁面加載時(shí)間,它要求在 Web 服務(wù)器上實(shí)現(xiàn)壓縮特性并在瀏覽器端實(shí)現(xiàn)解壓縮特性。雖然早在幾年前,流行的瀏覽器大都能接收壓縮數(shù)據(jù),但 Web 服務(wù)器卻不能發(fā)送壓縮內(nèi)容。服務(wù)器壓縮模式出現(xiàn)之后,情況得到了改善。適用了http壓縮的頁面大致能節(jié)省下2/3的瀏覽帶寬,受益是非常客觀的,強(qiáng)烈推薦適用。
四、總結(jié):
隨著網(wǎng)民對網(wǎng)站訪問速度要求越來越高,網(wǎng)絡(luò)程序員已經(jīng)不能無視網(wǎng)民這方面的訴求。現(xiàn)在隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,也為我們提供了越來越多的方法來優(yōu)化網(wǎng)站。優(yōu)化網(wǎng)站是我們程序員不得不經(jīng)常面對的問題,希望讀者能從以上提供的方法中得到啟發(fā)。在不斷學(xué)習(xí)中進(jìn)步。
【淺談如何提高網(wǎng)站的訪問速度】相關(guān)文章:
淺談如何提高護(hù)理質(zhì)量?03-24
淺談如何提高語文教學(xué)12-11
淺談如何提高學(xué)生學(xué)習(xí)英語的興趣02-24
淺談如何提高英語大班教學(xué)效果03-29
淺談如何提高學(xué)生英語寫作能力11-20
淺談如何提高學(xué)生的學(xué)習(xí)主動(dòng)性02-14
淺談如何提高英語聽力能力12-04
企業(yè)網(wǎng)站如何提高轉(zhuǎn)化率論文02-19
- 相關(guān)推薦