Java线程池多核执行提升数据库查询效率
发布时间
阅读量:
阅读量
Java线程池多线程查询数据库提高查询效率
- 需求
- 问题
- 思路
- 代码
- 解析
需求
企业对多张表格进行多表关联查询时会遇到跨库查询的问题,并需要进行联合查找、数据分析
问题
主表数据1
主表数据2
…
统计数据1
统计数据2
…
数据
数据
数据
数据
报表架构由主表数据与统计数据显示组成,在单独查询主表数据的效率较高情况下,统计数据显示需跨库联查且其数据量较大导致整体查询速度有所下降。
在每次分页请求开始时先获取主表列表并遍历主表列表中的每个条目根据主表字段执行统计数据查询计算后再将结果汇总返回给前端。
其中分页响应时间为单次字段查询时间加上10次统计字段查询时间
思路
不能将所有报表数据统计任务完全交由数据库层处理,
而应让SQL用于仅进行数据过滤操作,
并返回所需的数据字段,
确保SQL操作简洁高效,
服务层接收数据库返回的结果集
最后传递给前端的是一个分页结构。
为了提高效率,在优化过程中我们主要关注的就是每个分页的处理。
每个分页包含10条数据。
使用多线程技术同时处理这10个请求。
最后将处理结果汇总后返回给前端客户端。
具体来说, 每个分页的响应时间为: 一次主表查询所需的时间加上一次统计数据查询所需的时间, 其中统计部分指的是在所有这10条数据中最慢的一次执行
全部评论 (0)
还没有任何评论哟~
