产品与架构调整
在考虑性能优化的时候,还是要优先考虑从大处着眼,而不是把大量时间花费在小细节提升上。
- 同步变异步 —— 不用等到所有数据都准备好了再呈现给用户,可以异步的、有优先级的逐步给用户提供服务。
- 远程变本地 —— 如果可以牺牲一定的一致性,可以将这些数据冗余到本地提升服务效率。
- 页面静态化 —— 静态页面比动态构建的页面会更快,这也是 SSR 的初衷。
后端持久层优化
- 串行变并行 —— 串行的逻辑,如果在没有依赖限制的情况下,可以并行执行。
- 数据库索引创建 —— 为了在查询的时候,显著减少消耗的时间。
- 数据库表拆分 —— 分为横向和纵向拆分
- 横向拆分指的是把业务意义上的同一个表拆分到不同数据库节点或不同子表中,也就是说这些节点的数据结构是一样的,但存储的数据不一样。
- 垂直拆分是把一个表拆分为多个表,甚至拆分到多个库中去。这时候拆分的表结构都是完全不一样的,表和表之间通过外键关联。
- 悲观锁变乐观锁
前端和网络层优化
- 减少请求次数 —— 资源压缩、资源合并、控制传输内容长度
- 减少渲染次数 —— 虚拟 DOM 合并多次 DOM 操作提升性能
- 减少 JavaScript 阻塞 —— 将 JavaScript 代码放最后、使用 Web Worker 分担任务执行
- 文本消息压缩
网友评论