Django 全栈优化指南

由于数据量剧增,系统响应很慢。对应用系统进行了一系列的优化工作,系统响应时间得到了数量级级别的优化效果。总体看,在压缩文件、加快网络访问方面的优化,对前端性能有显著提升效果。在存储过程、缓存、逻辑代码方面的优化,对后端性能提升有显著效果。本文整理了优化思路和方法。

1. 梳理链路

在优化之前,梳理整个链路尤为重要。优化是一个系统工程,不能经过简单地增减就取得很好的效果。同时,并不是我们故意将系统设计得慢,而是设计系统的前提条件发生了变化,需要审视整个系统。优化就是要找出这些变化,并让系统适应这种变化。下图,是对整个系统链路的梳理:一个接入层,一个逻辑层,一个存储层。

2. 项目背景和优化思路

这是一个商城 + 社区论坛的 Web 应用,还有小程序端。不仅要支撑商品的发布、更新、交易、日常运营,还需要支撑用户社区问答、关注点赞等社交功能。由于某些历史原因,系统的数据表多达 142 张。一句话描述,就是大而杂。同时,开发人员只有一个前端,一个后端。项目采用前后端分离的模式进行开发,优化时,也是顺着这个思路。前后端分别,先借助一定的分析工具,找到链路上耗时的节点,再进行优化。下面是一些已经采取或即将采取的优化措施。

3. 前端

3.1 根据 PageSpeed Insights 分析优化