跳到正文
線上
zh-Hantv0.46.1 · 1d135e2
維護中更新於 2026年8月31日

Decoroll

一家販售捲簾的OpenCart商店:先修好價格計算器與結帳流程,再透過一次效能搶救降低資料庫負載,解除了主機商的CPU限制。

Decoroll首頁:捲簾與百葉窗商店,有商品目錄按鈕、商品搜尋、電話與營業時間、客廳窗簾橫幅,以及遮光、垂直簾、調光簾等熱門類別

挑戰

這家捲簾商店需要修正價格計算器與結帳流程,之後又差點被主機商停用:網站與資料庫用掉的CPU約為每日上限的兩倍,卻沒人知道原因。

方案

  • 價格計算器: 正確的四捨五入(以前連整數金額也會多加1 UAH);多件商品時購物車總額不再差1–2 UAH;價格計算期間鎖定「加入購物車」按鈕,避免網路慢時有人以錯誤價格下單;計算器請求在http/https混用時也不再失敗。
  • 結帳: 地址欄位會依配送方式(宅配地址或門市)自動調整,瀏覽器自動填入不再誤填地區欄位,Chrome也不再把管理員儲存的密碼填進訂單表單。
  • 電子郵件: 聯絡表單的郵件改由商店信箱寄出,並把訪客放在Reply-To,主機商因此不再拒收。
  • SEO: 移除約550條過時的重新導向,修正圖片URL與所有商品資料源中的語言前綴,修正robots.txt中指向localhost的網站地圖。
  • CPU事件: 一份書面調查找出根本原因:佈景主題中的相對連結加上未經驗證的友善URL,替爬蟲製造出無窮無盡的頁面空間。現在巢狀URL會在PHP執行前就以重新導向收斂,連結已修正,新增8個資料庫索引與URL快取,清理工作階段資料表,強化圖片處理,止住膨脹到1 GB的錯誤日誌,並把網站移到具機器人防護的Cloudflare後方。每次變更前都做了經過驗證的資料庫備份。
  • 開發環境: 專案移入git,並配備Docker環境與本機設定。

成果

每次瀏覽商品頁讀取的資料列數:619,950 → 0。資料庫中的工作階段:57,040 → 6,777。網站地圖:1.12秒 → 0.16秒。修正後首頁回應時間為0.20秒,商品頁為0.52–0.63秒。主機商解除了限制。

螢幕截圖