優化維度
對於數據量小的購物網站,建議從以下層面入手,無需大量造數據,通過壓測工具(JMeter、wrk)模擬並發即可驗證效果。
1. 數據庫層
- 為高頻查詢字段添加索引(如商品名、用戶ID、訂單狀態)。
- 避免
SELECT *,按需選列。
- 開啟慢查詢日志(
long_query_time=1),定期分析。
- 使用連接池(HikariCP),配置合理大小。
2. 應用層
- 緩存熱點數據:首頁商品、分類、配置信息放入 Redis/Caffeine,設置 TTL。
- 分頁查詢優化:避免深分頁
LIMIT 100000, 20,改用游標/ID 下標法。
- 異步處理:下單發送郵件、短信、積分更新放入 MQ(RabbitMQ/RocketMQ)異步消費。
- JVM 調優:設置
-Xms -Xmx 避免頻繁 GC,啟用 G1GC,分析 GC 日志。
3. 前端/網絡層
- 靜態資源走 CDN,開啟 gzip/brotli 壓縮。
- HTTP/2 多路復用,合併減少請求數。
- 瀏覽器緩存策略(
Cache-Control、ETag)。
4. 代碼/架構層
- 學習 23 種設計模式,合理解耦(策略模式處理支付、模板方法處理訂單流程)。
- 參考優秀開源項目(如 Mall-Swarm、RuoYi)學習分層規範。
優化是持續過程,建立監控(Prometheus+Grafana)、鏈路追蹤,從瓶頸點切入效果最好。