您好,登錄后才能下訂單哦!
大型商城網站性能提高策略
大型商城網站,比如在面對大量用戶的訪問、高并發請求方面,一般的商城解決方案主要在這樣幾個方面:使用高性能的服務器、高性能的數據庫、高效率的編程語言、還有高性能的Web容器。但是這幾個解決思路意味著更大的投入。
那還有什么辦法去更小投入的優化這方面的性能嗎?在開發DSmall商城系統的時候,我們利用了一下幾點:
1、HTML靜態化
大家都知道,執行效率最高、消耗最小的其實就是純靜態化的html頁面,所以盡可能使網站上的頁面采用靜態頁面去實現。
2、圖片服務器分離
圖片是最消耗資源的,于是我們有必要將圖片與應用去進行分離,這是基本上也是大型網站都會采用的策略,它們都是有獨立的、甚至是很多臺的圖片服務器。這樣的網站架構可以降低提供訪問請求的服務器壓力,德尚網絡DSMall多店鋪系統就使用阿里云OSS支持圖片應用分離。
3、數據庫集群
那么在面對大量訪問的時候,以及大數據量的時候,一臺數據庫將無法滿足應用,于是我們需要使用數據庫集群。
4、緩存
緩存一詞搞技術的都接觸過,很多地方用到緩存。網站架構和網站開發中的緩存也是非常重要。
5、負載均衡
負載均衡將是大型網站解決高負荷訪問和大量并發請求采用的高端解決辦法。?
6、數據庫優化
6.1、選擇正確的存儲引擎
以?MySQL為例,包括有兩個存儲引擎?MyISAM?和?InnoDB,每個引擎都特點。
MyISAM?適合于需要大量查詢的應用。InnoDB?的趨勢會是一個非常復雜的存儲引擎,對于一些小的應用,它會比?MyISAM?還慢。但是它支持“行鎖”?,支持事務。
2、優化字段的數據類型
數據類型的一個原則,越小的列效率越。對于大部分的數據庫引擎來說,硬盤是最重大的瓶頸。因此把數據變得緊湊會對這種情況非常有幫助,因為這減少了對硬盤的訪問。
如果一個表只會只有幾列(比如說DSMall數據庫中的配置表),我們就沒有理由使用?INT?來做主鍵,可以使用?MEDIUMINT,?SMALLINT?或是更小的?TINYINT?會更經濟一些。如果你不需要記錄時間,使用?DATE?要比?DATETIME?好。當然,你也需要留夠足夠的擴展空間。
3、字段添加索引
索引不一定就是給主鍵或者是唯一的字段使用的。如果在你的表中,如果有某個字段你需要經常做搜索,那么最好是為其建立索引。
4、盡量避免使用Select?從數據庫里讀出大量的數據,那么查詢就會變慢。而且你的數據庫服務器和WEB應用服務器是獨立的服務器,還會增加網絡數據傳輸的負載。即使你要查詢數據表中有很多字段,也盡量不要用。
5、使用?ENUM?而不是?VARCHAR
ENUM?類型是非常快和緊湊的。在實際上,其保存的是?TINYINT,但其外表上顯示為字符串。例如,性別和狀態之類的字段取值是固定的,你應該使用?ENUM?而不是?VARCHAR。
6、盡可能的使用?NOT?NULL
除非你有一個很特別的原因去使用?NULL?值,你應該讓你的字段保持?NOT?NULL。其實?NULL也是需要額外的空間,而且在進行比較的時候,程序會更復雜。?這里并不是就不能使用NULL了,依然會有些情況下,你需要使用NULL值。
五、前端優化
優化完后端服務器和數據庫之后,我們還需要優化前端的界面和一些資源文件,其中主要包括圖片、JS和CSS的優化。
我們建議使用網頁性能測試工具進行檢測和分析,軟件具體會給出相關的優化建議。比如JS合并,CSS合并,圖片合并等等之類。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。