记录一次性能优化中的问题与方案

本文主要记录工作中的一次性能优化,主要从数据库,Java代码层,以及前端返回数据三个方面进行优化,响应时间从2.2秒左右提升到1.1~1.2秒。

1、数据库方面

由于数据库中数据量较大并且使用到的表较多,有些数据量较大的查询速度明显增加,而且由于表数量多、基数大,尽管每次查询速度不慢,但还是会增加总体的响应时间。

1. 数据的查询顺序

数据查询的过程中发现有些查询的结果集很大但是并没有用到,考虑后可以从两个方面进行优化,这两个方面其实都是通过减少查询的结果集从而减少响应时间。

将可以大范围缩小数据的结果集提前

将结果集中有可以作为后续查询条件的提前

2. 增加缓存

数据查询过程中有几张表的变动几率很小或者根本就不会改变,这种情况下就不需要每次都查询,可以将其添加到缓存中。只有第一次访问的时候加载,后续将不再请求数据库直接访问缓存数据,可以显著减少响应时间。

将变动很小的表或者根本不会改变的表添加到缓存中

3. 减少查询结果集

扫描二维码关注公众号,回复: 3161715 查看本文章

数据查询的结果集中有很多是不需要的信息,将不需要的查询结果去除掉,从而减少响应时间。也就是说不返回不需要的字段,不要返回全部的字段。

4. 数据库操作的优化

这边主要是操作层的优化,数据库优化可以参考我的另一篇博文。

数据库的简单优化

2、Java代码

1. 减少使用双层for循环,避免出现三层for循环

虽然说现代计算机的运行速度已经很快了,但是还是尽量少用或者不用双层for循环,不过三层for循环是一定不能出现的。

一般情况下的双层循环for循环都可以通过创建合适的数据结构通过两次一层for循环从而避免双层for循环。可以从我的另一篇博文获取一些灵感。

Java获取List中出现次数最多的的元素

2. 异常处理以及第三方API请求时间限制

数据操作的过程中调用到了第三方的API接口,虽然说一般情况下都没问题,但还是有几率出现请求超时的情况。所以对这个请求进行了异常处理和请求时间限制,避免请求超时时响应时间过长的问题。

3. 代码的封装提取

有些代码可以封装成一个方法的就提取出来封装成一个方法,虽然不会有效减少响应时间,但是代码更加整洁,也方便后期管理。

3、前端返回

1. 分页返回

使用分页返回数据,主要是减少数据传输量,减少由于带宽造成的时间浪费。

 

猜你喜欢

转载自blog.csdn.net/qq_27243963/article/details/82381361