最近关于后端优化的一些记录

94 阅读2分钟

我正在参加「掘金·启航计划」

背景

经过一段时间的开发,客户的需求也实现的差不多了。
开始关注于一些报表,特别一些综合的报表取展示效果慢,
这些报表的一些问题数来源多(多个业务模块)、数据取数展示逻辑比较复杂(一些层级关系、支持一些公式,一些时间段的取数不同)。

开始想往sql优化上进行

主要加一些索引,有固定数据的比如字典关联的直接限定住、not nulllike的一些优化。
奈何因为涉及的业务种类比较多、再加上业务和sql的功力不够效果不明显放弃了。

接着只能从代码上做一些调整

1.主要是做张临时表,保存当天的数据(和客户沟通后主要是当天的数据),用定时任务去刷新.
  为了提高定时任务执行效率可以用线程去跑每个业务的数据。
  
2.把查询的sql拆分出每个业务块的,当前端先择某个业务块的时候,只查询当前业务的;但当查询所有内容的时候还是走之前的大sql

3.通过上面处理之后当天的数据走临时表,
  非当天数据如果有业务分类的话走拆分的单独sql,
  非当天数据全量查询走拆分前的关联sql  

遇到的一个双报表调整

一个页面要了两个报表,区别再与取数日期区间,开始这里直接用两个单独代码块处理了。
后续公用的数据信息查询单独查询然后共用,后续把两个变为多线程处理。