2022-09-21 10:39:13 - 米境通
有很多人來問,opencart是不是一個(gè)小系統(tǒng),只能做個(gè)人電子商務(wù)網(wǎng)站,在2013年時(shí)候就有幾個(gè)客戶讓我?guī)椭鰋pencart站點(diǎn)優(yōu)化。
總結(jié)下來是這樣:
opencart原系統(tǒng)本身適合做中小企業(yè),數(shù)據(jù)庫也就是幾十張表,從安裝文件大小也能看出都比其它任何一個(gè)電商系統(tǒng)小,當(dāng)然大家希望它能撐起一個(gè)地球。
最近花了一周時(shí)間和一家高科技公司聯(lián)合測試了其性能情況。
基礎(chǔ)硬件環(huán)境:
CPU:Intel(R)Xeon(R)CPUE5-26200@2.00GHz(2核)
物理內(nèi)存:2GB(集成顯卡會(huì)占用一部分,真實(shí)為1.833GB)
空間大?。?.451GB(含操作系統(tǒng))
系統(tǒng)配置是不是比較差?
軟件環(huán)境:
OS版本:CentOSrelease6.4
PHP版本:5.3.28
mysql版本:5.5.37
nginx版本:1.7.3
網(wǎng)絡(luò)環(huán)境:
服務(wù)器位置:國內(nèi)
網(wǎng)絡(luò)帶寬:共享50M
測試情況:
1、在沒有做任何優(yōu)化情況下
1.1當(dāng)商品數(shù)量比較少,只有幾十個(gè)情況
結(jié)果:這種情況下響應(yīng)在3S內(nèi),都還正常。
1.2當(dāng)商品數(shù)量增加到2000個(gè)后
結(jié)果:響應(yīng)開始變慢,客戶需要等待,頁面請求響應(yīng)在4S左右。
1.3當(dāng)商品數(shù)量增加到10000個(gè)后
結(jié)果:響應(yīng)變的很慢,客戶訪問不流暢,不能正常瀏覽。
網(wǎng)站慢的原因是什么?主要是網(wǎng)絡(luò)帶寬,數(shù)據(jù)庫響應(yīng)慢造成的,同樣的網(wǎng)絡(luò)環(huán)境,當(dāng)增加商品數(shù)量后,瓶頸主要在數(shù)據(jù)庫響應(yīng)方面;
很多人增加網(wǎng)絡(luò)帶寬,提高服務(wù)器空間等做法都是徒勞的。
我檢查了,發(fā)現(xiàn)都是數(shù)據(jù)庫返回?cái)?shù)據(jù)慢造成的,其中有很多表的關(guān)聯(lián)(有的時(shí)候是業(yè)務(wù)邏輯復(fù)雜,有的時(shí)候是表設(shè)計(jì)上的問題),很多的統(tǒng)計(jì)數(shù)據(jù)類似count(distinct*)這樣的,玩過數(shù)據(jù)庫的人都知道這是致命的。
解決方案可以從幾個(gè)方面入手:
1.數(shù)據(jù)庫緩存,使用一些緩存技術(shù)如memorycache,這項(xiàng)技術(shù)需要占用較多的主機(jī)服務(wù)器內(nèi)存。
2.頁面緩存,將動(dòng)態(tài)頁面全部變成靜態(tài)頁面,客戶訪問的是靜態(tài)文件,如:pagechche
使用sphinx技術(shù)進(jìn)行緩存。
3.程序優(yōu)化,優(yōu)化SQL,全面優(yōu)化后臺(tái)的表,這個(gè)比較撈命,很少人這樣做,除非是個(gè)大公司。
不過有些簡單的SQL優(yōu)化還是可以動(dòng)手做做,提速也比較明顯的
opencart提速優(yōu)化(商品數(shù)小于5000個(gè))
3.高速緩存服務(wù)器,把數(shù)據(jù)庫表加入緩存中,讀寫進(jìn)行分離,并保持?jǐn)?shù)據(jù)一致性,專門為對數(shù)據(jù)庫訪問性能有較高要求,需要承載大量商品信息,輕松應(yīng)對復(fù)雜應(yīng)用程序而設(shè)計(jì)。