2023-11-01 分類: 網(wǎng)站建設(shè)
網(wǎng)站性能優(yōu)化對于大型網(wǎng)站來說非常重要。網(wǎng)站的打開速度會(huì)影響用戶體驗(yàn)。網(wǎng)站訪問速度慢會(huì)導(dǎo)致高跳出率。小網(wǎng)站很容易解決。對于大型網(wǎng)站,由于欄目較多,圖片和圖片都比較大,那么如何優(yōu)化整體性能?
一、大型網(wǎng)站性能提升策略
1、HTML 靜態(tài)化
其實(shí)大家都知道效率最高、消耗最少的是純靜態(tài)HTML頁面php網(wǎng)站部署到服務(wù)器,所以我們盡量讓我們網(wǎng)站的頁面都使用靜態(tài)頁面。這種最簡單的方法其實(shí)是最有效的方法。 .
2、圖片服務(wù)器分離
眾所周知,對于web服務(wù)器,無論是IIS還是其他容器,圖片都是最消耗資源的,所以我們需要將圖片和頁面分開。這基本上是大型網(wǎng)站采用的策略。它們有獨(dú)立的甚至很多的圖像服務(wù)器。這樣的架構(gòu)可以減輕提供頁面訪問請求的服務(wù)器系統(tǒng)的壓力,并且可以保證系統(tǒng)不會(huì)因?yàn)閳D像問題而崩潰。在應(yīng)用服務(wù)器和鏡像服務(wù)器上,可以進(jìn)行不同的配置優(yōu)化。比如在配置的時(shí)候,可以盡可能少的支持,盡可能的少,以保證更高的系統(tǒng)消耗和執(zhí)行效率。
3、數(shù)據(jù)庫集群,庫表hash
大型網(wǎng)站具有復(fù)雜的應(yīng)用程序。這些應(yīng)用程序必須使用數(shù)據(jù)庫。當(dāng)面對大量的訪問時(shí),數(shù)據(jù)庫的瓶頸很快就會(huì)暴露出來。這時(shí)候一個(gè)數(shù)據(jù)庫很快就無法滿足應(yīng)用,所以我們需要使用數(shù)據(jù)庫集群或者數(shù)據(jù)庫表hash。
在數(shù)據(jù)庫集群方面,很多數(shù)據(jù)庫都有自己的解決方案,也提供了常用/類似的解決方案。
集群通常使用 CDN、GSbL 和 DNS 負(fù)載均衡技術(shù)。每個(gè)地區(qū)有一組前端服務(wù)器組,如網(wǎng)易,百度使用DNS負(fù)載均衡技術(shù),每個(gè)頻道有一組前端服務(wù)器,易搜使用DNS Load技術(shù),所有頻道共享一組前端服務(wù)器端服務(wù)器集群。
庫表哈希是最常用和最有效的解決方案。
我們在應(yīng)用程序中安裝業(yè)務(wù)和應(yīng)用程序或功能模塊來分離數(shù)據(jù)庫。不同的模塊對應(yīng)不同的數(shù)據(jù)庫或者表,然后按照一定的策略對某個(gè)頁面或者函數(shù)進(jìn)行更小的數(shù)據(jù)庫hash,比如根據(jù)用戶ID對用戶表進(jìn)行hash,這樣可以提高系統(tǒng)的性能成本低,可擴(kuò)展性好。
搜狐的論壇采用這樣的結(jié)構(gòu),將論壇的用戶、設(shè)置、帖子等信息的數(shù)據(jù)庫分開,然后根據(jù)帖子和用戶的和ID對數(shù)據(jù)庫和表進(jìn)行hash,最后可以得到在配置文件中完成。簡單的配置允許系統(tǒng)隨時(shí)添加低成本的數(shù)據(jù)庫來補(bǔ)充系統(tǒng)性能。
4、
所有從事技術(shù)的人都使用過“緩存”一詞,并且很多地方都使用緩存。 網(wǎng)站開發(fā) 中的網(wǎng)站架構(gòu)和緩存也很重要。這里首先描述兩個(gè)最基本的緩存。稍后將描述高級(jí)和分布式緩存。至于架構(gòu)上的緩存,熟悉它的人都知道,它提供了自己的緩存模塊,或者可以使用額外的模塊進(jìn)行緩存。這兩種方法都可以有效提高訪問響應(yīng)能力。
網(wǎng)站程序開發(fā)的緩存提供了常用的緩存接口,可以在web開發(fā)中使用。比如在Java開發(fā)的時(shí)候,可以調(diào)用緩存一些數(shù)據(jù),共享通信。一些大型社區(qū)使用這種架構(gòu)。另外,在使用web語言開發(fā)的時(shí)候,各種語言基本都有自己的緩存模塊和方法,pHp有pear模塊,Java比較多,.net也不是很熟悉,相信會(huì)有的。
5、
鏡像是大型網(wǎng)站經(jīng)常使用的一種提高性能和數(shù)據(jù)安全性的方法。鏡像技術(shù)可以解決由于不同的網(wǎng)絡(luò)接入商和地區(qū)造成的用戶訪問速度的差異。比如很多網(wǎng)站的區(qū)別和推廣 鏡像網(wǎng)站建在教育網(wǎng),數(shù)據(jù)定期或?qū)崟r(shí)更新。
6、負(fù)載均衡
負(fù)載均衡將是大型網(wǎng)站解決高負(fù)載訪問和大量并發(fā)請求的高端方案。負(fù)載均衡技術(shù)發(fā)展多年,有很多專業(yè)的服務(wù)商和產(chǎn)品可供選擇。
二、pHp 代碼編寫優(yōu)化:
1. echo 比它快得多。
兩種方法都會(huì)在頁面上打印東西,但是echo不返回任何值,成功或失敗都會(huì)返回0或1。
2. 比這更耗時(shí)。
因?yàn)樗枰獧z查你要包含的內(nèi)容是否已經(jīng)包含。
3. 對于長段落的字符串,必須使用單引號(hào)而不是雙引號(hào)。
因?yàn)殡p引號(hào)會(huì)搜索字符串中的變量。例如:echo ‘This is long ’。 $name 比 echo "This is long $name" 快得多。
4. 不要使用嵌套在循環(huán)中的 for 循環(huán)
5. 如果可以將函數(shù)定義為靜態(tài)函數(shù),則不要將其定義為成員函數(shù)。靜態(tài)函數(shù)比成員函數(shù)快 33%。
6.如果不用正則表達(dá)式也能解決問題,那就不要使用正則表達(dá)式。
正則表達(dá)式比 pHp 的原生函數(shù)慢。例如,使用替換。
7. 盡量不要使用相對路徑來包含文件
在相對路徑中搜索文件,會(huì)在當(dāng)前目錄中搜索,然后依次再次搜索。這樣,查找文件非常慢。最好先定義這樣一個(gè)常量,然后用這個(gè)常量來包含文件。
8.全等符號(hào)===比等式快==
而 if (1 == '1') 會(huì)返回真,if (0 == ”) 也會(huì)返回真,而當(dāng)你使用全等符號(hào)時(shí), if (1 ==='1') 和 if (0 ===”) 將返回。所以當(dāng)你需要檢查程序中的一些布爾變量時(shí),最好使用全等符號(hào)。
三、三、有幾種方式
1.關(guān)閉調(diào)試模式
由于關(guān)閉調(diào)試模式,系統(tǒng)會(huì)自動(dòng)生成項(xiàng)目編譯緩存并關(guān)閉日志寫入,可以減少大量的IO加載和日志寫入開銷。
2.啟用頁面壓縮輸出
從3.1版本開始,增加了配置參數(shù)來控制頁面壓縮輸出。
3.啟用緩存
在網(wǎng)站部署環(huán)境中安裝ApC或緩存,可以有效提升網(wǎng)站性能和內(nèi)存使用率。它是一個(gè)開源緩存/優(yōu)化器,這意味著它可以提高 pHp 在您的服務(wù)器上的性能。 pHp 編譯后數(shù)據(jù)緩存到共享內(nèi)存,避免重復(fù)編譯過程,編譯后的代碼可以直接用來緩存編譯后的代碼,提高速度。通常它可以將您的頁面生成率提高 2 到 5 倍并減少服務(wù)器負(fù)載。 pHp(ApC)是一種有效的pHp開源緩存工具,可以緩存pHp中間代碼。
4. 字段緩存
默認(rèn)情況下,字段緩存是自動(dòng)生成的。開發(fā)完成后,基本上數(shù)據(jù)庫的變化變少了,所以可以考慮將字段緩存合并到對應(yīng)的模型類中,這樣可以減少每次讀取字段緩存的IO開銷。合并的方法是在/Data/
下找到對應(yīng)的字段緩存文件
四、 數(shù)據(jù)庫優(yōu)化
1、選擇合適的存儲(chǔ)引擎
舉個(gè)例子,有兩個(gè)存儲(chǔ)引擎和。每個(gè)引擎都有優(yōu)點(diǎn)和缺點(diǎn)。它適用于一些需要大量查詢的應(yīng)用。趨勢將是一個(gè)非常復(fù)雜的存儲(chǔ)引擎,對于一些小型應(yīng)用程序,它會(huì)比這更慢。但它支持“行鎖”并支持事務(wù)。
2、優(yōu)化字段的數(shù)據(jù)類型
記住一個(gè)原則,列越小,速度越快。對于大多數(shù)數(shù)據(jù)庫引擎,硬盤操作可能是最重要的瓶頸。因此,在這種情況下,使您的數(shù)據(jù)緊湊將非常有幫助,因?yàn)樗鼫p少了對硬盤的訪問。如果一個(gè)表只有幾列(比如字典表、配置表),那么我們沒有理由使用INT作為主鍵。使用INT或更小更經(jīng)濟(jì)。如果不需要記錄時(shí)間,使用DATE會(huì)好很多。當(dāng)然,你也需要留出足夠的擴(kuò)展空間。
3、為搜索字段添加索引
索引不一定用于主鍵或唯一字段。如果你的表中有一個(gè)字段你會(huì)經(jīng)常使用,那么最好為其建立一個(gè)索引,除非你要搜索的字段是一個(gè)大文本字段,那么你應(yīng)該建立一個(gè)全文索引.
4、 *從數(shù)據(jù)庫讀取的數(shù)據(jù)越多,查詢越慢。
而且,如果你的數(shù)據(jù)庫服務(wù)器和WEb服務(wù)器是兩個(gè)獨(dú)立的服務(wù)器,這樣也會(huì)增加網(wǎng)絡(luò)傳輸?shù)呢?fù)載。即使要查詢數(shù)據(jù)表的所有字段,也盡量不要使用*通配符。善用內(nèi)置的字段排除定義,可能會(huì)帶來更多的便利。
5、使用 ENUM 代替
ENUM 類型非??焖偾揖o湊。其實(shí)它保存的是什么,只是在外面表現(xiàn)為一個(gè)字符串。這樣,使用這個(gè)字段來制作一些選項(xiàng)列表就變得非常完美了。例如,性別、種族、部門、地位等這些字段的值是有限的和固定的。那么,你應(yīng)該使用 ENUM 而不是。
6、盡量使用NOT NULL
除非您有非常具體的理由使用 NULL 值,否則您應(yīng)該始終保持您的字段 NOT NULL。 NULL 實(shí)際上需要額外的空間,比較起來你的程序會(huì)更復(fù)雜。當(dāng)然,這并不是說不能使用NULL。實(shí)際情況很復(fù)雜,還有一些情況需要用到NULL。
7、定長表會(huì)更快
如果表中所有字段都是“定長”,則整個(gè)表將被視為“”或“-”。例如,表中沒有以下類型的字段:、TEXT、bLOb。只要您包含這些字段之一,該表就不是“固定長度的靜態(tài)表”。這樣引擎就會(huì)用另一種方法來處理。
定長表會(huì)提高性能,因?yàn)樗阉鲿?huì)更快,因?yàn)檫@些定長很容易計(jì)算下一個(gè)數(shù)據(jù)的偏移量,所以讀取自然會(huì)更快。而如果字段不是定長的,那么每次查找下一個(gè)時(shí),程序都需要查找主鍵。
此外,固定長度的表更容易緩存和重建。但是唯一的副作用是定長字段會(huì)浪費(fèi)一些空間,因?yàn)闊o論你使用與否,定長字段都要分配這么多空間。
8、使用“垂直分割”技術(shù)
你可以把你的桌子分成兩張,一張是固定長度的,一張是可變長度的。垂直切分“垂直切分”是將數(shù)據(jù)庫中的一張表按列轉(zhuǎn)換成若干張表的方法,可以降低表的復(fù)雜度和字段數(shù),從而達(dá)到優(yōu)化的目的。例如:User表中有一個(gè)字段是家庭住址,該字段為可選字段,相比之下,操作數(shù)據(jù)庫時(shí)除個(gè)人信息外,無需頻繁讀取或重寫該字段。那么,為什么不把他放在另一張桌子上呢?這樣會(huì)讓你的表有更好的性能,想想看php網(wǎng)站部署到服務(wù)器,如果有很多時(shí)候,我只有用戶表的用戶名,用戶名和密碼。 、用戶角色等會(huì)經(jīng)常用到。較小的手表將始終具有良好的性能。另外需要注意的是,這些劃分的字段組成的表,不要頻繁的加入,否則性能會(huì)比不劃分的時(shí)候差,而且會(huì)出現(xiàn)極值的數(shù)量。下降的程度。
9、您的詢問
使用關(guān)鍵字讓您知道如何處理您的 SQL 語句。這可以幫助您分析查詢或表結(jié)構(gòu)的性能瓶頸。查詢結(jié)果還會(huì)告訴你你的索引主鍵是怎么用的,你的數(shù)據(jù)表是怎么搜索排序的……等等。對于比較復(fù)雜的語句,尤其是涉及多表的語句,通常我們可以在前面加上關(guān)鍵字。你可以用它來做到這一點(diǎn)。
五、前端優(yōu)化
優(yōu)化后端和數(shù)據(jù)庫后,接下來我們要做的就是優(yōu)化你的前端頁面和輸出頁面的資源文件,包括圖片、JS和樣式文件的優(yōu)化。建議使用以下網(wǎng)頁性能測試工具進(jìn)行檢測分析,并給出相關(guān)優(yōu)化建議:
開發(fā)的工具
開發(fā)人員可以使用它來評估其網(wǎng)頁的性能并獲得有關(guān)如何提高性能的建議。
它可以分析網(wǎng)站的頁面,告訴您如何根據(jù)一定的規(guī)則進(jìn)行優(yōu)化,以提高網(wǎng)站的性能。
文章名稱:網(wǎng)站性能優(yōu)化對于大型網(wǎng)站來說的重要性有哪些?
分享地址:http://aaarwkj.com/news12/291812.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、移動(dòng)網(wǎng)站建設(shè)、定制網(wǎng)站、搜索引擎優(yōu)化、軟件開發(fā)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容