跳到正文
在线
zh-Hansv0.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秒。主机商解除了限制。

截图