溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php商城網(wǎng)站如何提高性能和并發(fā)訪問

發(fā)布時(shí)間:2020-07-12 19:27:42 來源:網(wǎng)絡(luò) 閱讀:342 作者:德尚網(wǎng)絡(luò) 欄目:編程語言

大型商城網(wǎng)站性能提高策略

大型商城網(wǎng)站,比如在面對大量用戶的訪問、高并發(fā)請求方面,一般的商城解決方案主要在這樣幾個(gè)方面:使用高性能的服務(wù)器、高性能的數(shù)據(jù)庫、高效率的編程語言、還有高性能的Web容器。但是這幾個(gè)解決思路意味著更大的投入。
那還有什么辦法去更小投入的優(yōu)化這方面的性能嗎?在開發(fā)DSmall商城系統(tǒng)的時(shí)候,我們利用了一下幾點(diǎn):

1、HTML靜態(tài)化
  大家都知道,執(zhí)行效率最高、消耗最小的其實(shí)就是純靜態(tài)化的html頁面,所以盡可能使網(wǎng)站上的頁面采用靜態(tài)頁面去實(shí)現(xiàn)。

2、圖片服務(wù)器分離
  圖片是最消耗資源的,于是我們有必要將圖片與應(yīng)用去進(jìn)行分離,這是基本上也是大型網(wǎng)站都會(huì)采用的策略,它們都是有獨(dú)立的、甚至是很多臺的圖片服務(wù)器。這樣的網(wǎng)站架構(gòu)可以降低提供訪問請求的服務(wù)器壓力,德尚網(wǎng)絡(luò)DSMall多店鋪系統(tǒng)就使用阿里云OSS支持圖片應(yīng)用分離。

3、數(shù)據(jù)庫集群
  那么在面對大量訪問的時(shí)候,以及大數(shù)據(jù)量的時(shí)候,一臺數(shù)據(jù)庫將無法滿足應(yīng)用,于是我們需要使用數(shù)據(jù)庫集群。

4、緩存
  緩存一詞搞技術(shù)的都接觸過,很多地方用到緩存。網(wǎng)站架構(gòu)和網(wǎng)站開發(fā)中的緩存也是非常重要。

5、負(fù)載均衡
  負(fù)載均衡將是大型網(wǎng)站解決高負(fù)荷訪問和大量并發(fā)請求采用的高端解決辦法。?

6、數(shù)據(jù)庫優(yōu)化
6.1、選擇正確的存儲(chǔ)引擎
以?MySQL為例,包括有兩個(gè)存儲(chǔ)引擎?MyISAM?和?InnoDB,每個(gè)引擎都特點(diǎn)。

MyISAM?適合于需要大量查詢的應(yīng)用。InnoDB?的趨勢會(huì)是一個(gè)非常復(fù)雜的存儲(chǔ)引擎,對于一些小的應(yīng)用,它會(huì)比?MyISAM?還慢。但是它支持“行鎖”?,支持事務(wù)。

2、優(yōu)化字段的數(shù)據(jù)類型

數(shù)據(jù)類型的一個(gè)原則,越小的列效率越。對于大部分的數(shù)據(jù)庫引擎來說,硬盤是最重大的瓶頸。因此把數(shù)據(jù)變得緊湊會(huì)對這種情況非常有幫助,因?yàn)檫@減少了對硬盤的訪問。

如果一個(gè)表只會(huì)只有幾列(比如說DSMall數(shù)據(jù)庫中的配置表),我們就沒有理由使用?INT?來做主鍵,可以使用?MEDIUMINT,?SMALLINT?或是更小的?TINYINT?會(huì)更經(jīng)濟(jì)一些。如果你不需要記錄時(shí)間,使用?DATE?要比?DATETIME?好。當(dāng)然,你也需要留夠足夠的擴(kuò)展空間。

3、字段添加索引

索引不一定就是給主鍵或者是唯一的字段使用的。如果在你的表中,如果有某個(gè)字段你需要經(jīng)常做搜索,那么最好是為其建立索引。

4、盡量避免使用Select?從數(shù)據(jù)庫里讀出大量的數(shù)據(jù),那么查詢就會(huì)變慢。而且你的數(shù)據(jù)庫服務(wù)器和WEB應(yīng)用服務(wù)器是獨(dú)立的服務(wù)器,還會(huì)增加網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)呢?fù)載。即使你要查詢數(shù)據(jù)表中有很多字段,也盡量不要用。

5、使用?ENUM?而不是?VARCHAR
ENUM?類型是非常快和緊湊的。在實(shí)際上,其保存的是?TINYINT,但其外表上顯示為字符串。例如,性別和狀態(tài)之類的字段取值是固定的,你應(yīng)該使用?ENUM?而不是?VARCHAR。

6、盡可能的使用?NOT?NULL
除非你有一個(gè)很特別的原因去使用?NULL?值,你應(yīng)該讓你的字段保持?NOT?NULL。其實(shí)?NULL也是需要額外的空間,而且在進(jìn)行比較的時(shí)候,程序會(huì)更復(fù)雜。?這里并不是就不能使用NULL了,依然會(huì)有些情況下,你需要使用NULL值。

五、前端優(yōu)化
優(yōu)化完后端服務(wù)器和數(shù)據(jù)庫之后,我們還需要優(yōu)化前端的界面和一些資源文件,其中主要包括圖片、JS和CSS的優(yōu)化。

我們建議使用網(wǎng)頁性能測試工具進(jìn)行檢測和分析,軟件具體會(huì)給出相關(guān)的優(yōu)化建議。比如JS合并,CSS合并,圖片合并等等之類。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI