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