Java线程池多线程查询数据库提高查询效率

2023-11-06

Java线程池多线程查询数据库提高查询效率

需求

公司数据统计报表查询,几张大表关联查询,包含跨库查询,数据联查,数据过滤,数据统计。

问题

主表数据1

主表数据2

统计数据1

统计数据2

数据

数据

数据

数据

报表结构是主表数据+统计数据,只查主表数据速度很快,统计数据需要跨库联查,且表数据量大,拖慢了速度。
一开始的做法是,每次分页请求都先获取主表list,再foreach主表list,根据主表字段去查询统计数据并进行计算,再合并到主表进行返回,查询速度不理想。
分页查响应时间=1次主表查询时间+10次统计数据查询时间

思路

复杂的报表数据统计不应全部由DB层面去解决,而是SQL仅负责数据过滤,返回统计所需的字段,SQL尽量简单高效,service层拿到DB返回的结果集,由代码层面去进行较为复杂的数据合并与统计。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java线程池多线程查询数据库提高查询效率 的相关文章

随机推荐

  • OSI和TCP/IP

    OSI和TCP IP是两种不同的计算机网络协议体系 OSI协议体系 即开放式系统互联通信参考模型 Open Systems Interconnection 是一种抽象的理论网络体系结构 由国际标准化组织 ISO 制定 这个体系结构包括七层
  • 使用msys2 mingw64编译gcc

    我们在msys2中使用pacman安装的GCC默认是不能显示中文帮助的 而Linux下是可以显示中文的 这是因为在编译msys2 Mingw在编译GCC时 是没有打开 enable nls开关的 为了让其可以显示中文 可以尝试自己编译GCC
  • 60-200-050-使用-命令-MySQL explain命令

    文章目录 1 explain使用方法 2 ID 3 select type 4 table 5 Type 5 0 null 5 1 system 5 2 const 5 3 eq ref 5 4 ref 5 5 range 5 6 inde
  • linux mysql cpu 查看工具_Linux常用系统分析工具-CPU

    TOP top命令可以实时动态地查看系统的整体运行情况 是一个综合了多方信息监测系统性能和运行信息的实用工具 TOP命令的可选参数和其对应的含义如下 c 显示完整的命令 d 屏幕刷新时间间隔 i 设置时间间隔 u 指定用户名 p 指定进程
  • LDA模型训练与得到文本主题、困惑度计算(含可运行案例)

    文章目录 模块一 训练LDA模型 模块二 困惑度计算 模块三 得到一段文本的主题 全部代码及案例 可直接运行 首先使用gensim库 pip install gensim 模块一 训练LDA模型 import gensim pip inst
  • 07-微信小程序-注册页面-模块化

    07 微信小程序 注册页面 文章目录 注册页面 使用 Page 构造器注册页面 参数Object 初始数据 案例代码 生命周期回调函数 组件事件处理函数 setData 案例代码 生命周期 模块化 注册页面 对于小程序中的每个页面 都需要在
  • [Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形

    欢迎大家来到 Python从零到壹 在这里我将分享约200篇Python系列文章 带大家一起去学习和玩耍 看看Python这个有趣的世界 所有文章都将结合案例 代码和作者的经验讲解 真心想把自己近十年的编程经验分享给大家 希望对您有所帮助
  • HTML CSS 盒模型 +background 使用

    HTML 盒模型 box model 和background 部分内容来自菜鸟教程 所有HTML元素可以看作盒子 在CSS中 box model 这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子 封装周围的HTML元素 它包括
  • 写一个函数,用户输入一个数判断是否是素数

    写一个函数 用户输入一个数判断是否是素数 function get num if num 1 num 0 return num 不是质数 for var i 2 i lt num i if num i 0 return num 不是质数 r
  • oracle生成标准uuid,Oracle 生成uuid方法

    近日 遇到朋友问及如何生成UUID 是 通用唯一识别码 Universally Unique Identifier 方法 其实数据中是支持的 Oracle中生成跨系统的唯一识别符UUID非常方便 比生成序列还简单 直接用sys guid 就
  • Stable Doodle:简单涂鸦一键变成艺术品

    摘要 Stable Doodle 是一款使用 AI 技术将简单涂鸦转化为艺术品的应用 它可以帮助用户快速 轻松地创作出精美的图画 本教程将介绍 Stable Doodle 的基本使用方法 正文 Stable Doodle 的使用非常简单 只
  • 2080ti,驱动安装,CUDA安装,CUDNN安装,CUDA10.1的不兼容问题

    发现问题 哎呦 我跑的是CPU 不是GPU 解决问题 Tensorflow目前不支持CUDA10 1 继续解决问题 哎呦 驱动被不小心删掉了 那就全部重新安装吧 最终解决好了 跑起来了 看似GPU 其实跑的是CPU 之前写了代码发现 能跑起
  • 分布式版本控制VS集中式版本控制

    集中式版本控制 诸如CVS SVN等 都有一个集中管理的服务器 保存所有的文件修订版本 而协同工作的人们都通过客户端连接到这台服务器 取出最新的文件或者提交更新 如上图所示 A B C为三位开发者 这是A将代码拉到本地进行开发 这个时候A开
  • raise_for_status()方法

    raise for status 方法 理解Response类非常重要 Response这样的一个对象返回了所有的网页内容 那么它也提供了一个方法 叫raise for status 这个方法是专门与异常打交道的方法 该方法有这样一个有趣的
  • 如何模拟弱网条件 - 限流, 丢包, 延迟和抖动

    Abstract 弱网条件的模拟 Authors Walter Fan Category learning note Status v1 0 Updated 2023 02 16 License CC BY NC ND 4 0 概述 在网络
  • 什么是车联网

    要弄清车联网是什么 还要从许多年前说起 比尔 盖茨等人曾提出物联网的概念 即 万物相连的互联网 物联网是要将各种信息传感设备与互联网结合起来从而形成一个的巨大的网络 简单来说 就是给各种各样的事物连上互联网 然后人们可以通过某个设备远程监控
  • 如何高效定位网络丢包问题?

    引言 本期分享一个比较常见的网络问题 丢包 例如我们去ping一个网站 如果能ping通 且网站返回信息全面 则说明与网站服务器的通信是畅通的 如果ping不通 或者网站返回的信息不全等 则很可能是数据被丢包了 类似情况想必大家都不陌生 针
  • java后端使用websocket实现与客户端之间接收及发送消息

    客户端请求websocket接口 连接通道 我这边业务成功客户端发消息 客户端自动刷新 接口 ws localhost 8080 websocket xx import org springframework web socket conf
  • Docker 安装 ES eslasticsearch

    Docker 安装 ES eslasticsearch 1 下载镜像 我这里下载的是 6 8 14 如果你不知道有哪些版本 可以查看 https hub docker com elasticsearch root localhost jzj
  • Java线程池多线程查询数据库提高查询效率

    Java线程池多线程查询数据库提高查询效率 需求 问题 思路 代码 解析 需求 公司数据统计报表查询 几张大表关联查询 包含跨库查询 数据联查 数据过滤 数据统计 问题 主表数据1 主表数据2 统计数据1 统计数据2 数据 数据 数据 数据