最近接受委託,將一個有四萬多項商品的網站從OSC轉到TWE23的平台,其中所遇到一些問題,提出來跟大家分享.
四萬多項商品在OSC的平台運作遇到了瓶景,OSC的快取似乎已經無法應付這麼多商品的運作,網站反應變的異常的慢.所以客戶有了轉換平台的構想.
由於四萬多項商品在原OSC的資料庫資料在100MB左右,剔除掉原客戶與舊訂單資料剩下必須的商品資料仍在60MB左右,由於受到伺服器上傳資料的限制,必須將資料庫檔案作切割,分別切割成約8MB共8個SQL檔案來分批導入,由於客戶原OSC是使用BIG5編碼模式,所以在切割前必須先將一些許功蓋的倒斜線與脫逸字元清除整理,整個導入的時間大約耗時一個鐘頭.......
由於是經營光碟生意,所以頁面圖片相當多,因為商品太多爲了方便搜尋,其中將一些主角名稱或產品目錄以事先依搜尋結果後,製作成小圖式顯示以方便USER搜尋特定對象.
在平台剛轉完成之初曾經試過不使用任何快取或是GZIP壓縮進入首頁最長載入頁面時間約12秒左右,其中不包括圖片下載時間,這個結果是無法令人接受的,由於該站白天與晚上的流量相差極大,在晚間顯示頁面曾經有近百秒的時間,經測試結果資料庫在新商品頁面與暢銷商品排行耗時最久,將new_products.php與佈景檔裡的best_sellers.php依之前改寫smarty快取方式更改後,至後台開啟快取後測試結果下載頁面耗時仍在8~9秒, 這個結果仍是無法令人接受的.由於程式快取並沒有全部改寫,所以開始嘗試在資料庫加入必要索引測試,效果並不如預期,最後開始測試利用ADODB函式庫的快取CacheExecute(),在一些檔案中來使用,最後再搭配GZIP壓縮,頁面的顯示時間變為0.3秒左右.
克服了頁面顯示的速度後,由於TWE平台在特價商品與商品屬性設定上的程式寫法是一進入設定頁面資料庫會撈取所有商品顯示下拉選單,這種方式在商品多的時候會造成資料庫負擔,顯示延遲相當久的時間,這部分必須更改成先選擇商品目錄後跳轉選擇該目錄下商品.
由於單一目錄下商品數量也是相當驚人,商品目錄顯示速度也相當不理想,所以業主早已放棄使用後台商品上架方式,而改用編寫SQL檔案直接由PHPMYADMIN塞入商品資料,再將圖片以FTP的方式分別上傳至SERVER,
當然這種方式是很快,但是在編寫SQL檔時必須非常注意一些欄位的對應與相關資料字元ID對應的正確性,否則有可能因錯誤而導致資料只導入一半, 而造成資料的不正確,反而延遲了上架時間,更可能造成資料庫的錯亂.
該網站網址
http://www.avstar-dvd.net/index.php
其中http://www.avstar-dvd.net/products_new.php
改用多選式的checkbox方式,由於呈現商品四十項導致頁面拖的很長,所以利用javascript做了一個隨身按鈕方便USER點選放入購物車.
在TWE的跳頁功能中並沒有顯示最後一頁的功能,4萬多件商品每頁30個商品共有一千四百多頁,未了方便USER選擇,所以加入了下拉式的頁面跳轉選單.
提供給滿18歲的各位參考,由於該網站已經正式營運,所以請勿試車.
|