最近忙于项目的,很久没更新了。
分享一个由于项目的突然推广导致数据量激增从而导致系统变慢的问题。
- 背景
在项目推广之前,数据的量比较少,系统整体的响应还是很快的。随着时间的推移,数据逐步增多,导致部分页面响应缓慢的问题,用户体验变差。
- 问题的定位
经定位,在原有的初时代码中,app端的分页代码全部存在数据总数计算的语句。同时所有的分页计算总数的SQL是使用mybatis的默认查询语句,在查询关联比较复杂的情况下将导致性能急剧下降。
- 解决方案
- app端的分页操作禁用查询总数的计算:具体步骤如下
- 使用pageHelper插件的设置: PageHelper.startPage(page, size,false); false就是禁止查询数量
- 使用mybatis-plus Page的设置:
Page<Object> page1 = new Page<>(page.getCurrent(), page.getSize());
page1.setSearchCount(false);
2:管理后随着数据量的增多,列表查询变得缓慢,设置如下:
- 使用pageHelper插件的设置:
- 使用mybatis-plus Page的设置:
page1.setSearchCount(false);
page1.setTotal("自定义的查询方法");