java同步大量数据到本地数据库方法总结

news2024/11/19 3:34:56

最近在做一个需求,就是我需要对三方接口调用的数据存放到本地的数据库里的数据表里面。那么一开始我就是直接一条一条save,结果发现耗时非常严重,后面我就进行了改进。就是分批次去同步或者分批次去异步。

现在我直接贴出我写的代码,这个代码只是一个演示代码,不过也挺完整的了。思路是完整的。

首先是实体DTO:

然后是:操作实体的Mapper接口、Service接口

 

 由于同步任务是一个非常耗时的操作。所以我们可以用一个调度任务然后在夜间某个时间点进行同步,当然由于三方接口返回的数据也会进行更新的,所以我们可以进行增量同步,但是我们并不知道更新的是哪些数据,当然你可以去挨个数据对比,但是比较麻烦,所以我们只能先做全部删除,然后再做全量同步。

先delete from

但是全部删除delete from 实则也是一个耗时操作,实际也是一行一行删除的,相对比全量同步可能稍微会快点,所以我们也需要对全部删除分批次+同步串行 或者是分批次+异步并行,也就是帮我们上面的同步串行改成删除就可以了。

所以我们可以在调用任务里面就是直接全量删除 + 全量同步,然后在夜间12.00进行这个任务的执行。当然如果你是在前端界面加上一个按钮叫做:一键同步的话,点击这个按钮,我们可以让前端发出一个axios异步请求,然后在界面上加上一个提示叫做:

同步操作已经进入后台处理,处理完毕会通知!

总结:

        这就是同步大量数据到本地数据库的一般思路,其实就是两个:

        同步串行 或者是 异步并行

最后:

        如果大家觉得这篇文章对你们有所帮助的话,麻烦给个免费的赞赞,谢谢,也祝各位码农在未来的IT道路上越走越远。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1637006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PG后台进程个人解读和与oracle 的比较

1.background writer (后台写进程) 与OracleDBWR进程工作原理类似,都是负责把缓冲区里面的脏块写到数据文件中,写的目的有两个: 1.为了保存数据。 2.为了释放内存空间。 触发background writer 写的条件&#xff1a…

Virtualbox--下载指定版本

一、前言 下载Virtualbox7.0.10,可参考《Virtualbox–下载指定版本》 Virtualbox7.0.10具体安装步骤,可参考《Virtualbox7.0.10的安装步骤》 Virtualbox7.0.10创建虚拟机,可参考《Virtualbox7.0.10–创建虚拟机》 Virtualbox7.0.10安装Ubuntu…

GPT3 终极指南(二)

原文:zh.annas-archive.org/md5/6de8906c86a2711a5a84c839bec7e073 译者:飞龙 协议:CC BY-NC-SA 4.0 第五章:GPT-3 作为企业创新的下一步 当一个新的创新或技术转变发生时,大公司通常是最后一个采纳的。它们的等级结构…

Linux 文件管理命令Lawk wc comm join fmt

文章目录 2.Linux 文件管理命令2.44 awk:模式匹配语言1.变量2.运算符3.awk 的正则4.字符串函数5.数学函数案例练习 2.45 wc:输出文件中的行数、单词数、字节数案例练习2.46 comm:比较…

Qwen-Audio:推动通用音频理解的统一大规模音频-语言模型(开源)

随着人工智能技术的不断进步,音频语言模型(Audio-Language Models)在人机交互领域变得越来越重要。然而,由于缺乏能够处理多样化音频类型和任务的预训练模型,该领域的进展受到了限制。为了克服这一挑战,研究…

Spring Data Redis简单使用

Spring Data Redis是一个用于简化应用程序与Redis交互的开发框架。它提供了简单的配置和方便的操作API,使得与Redis的集成变得更加容易。下面是一个快速入门使用Spring Data Redis的步骤: 步骤 1:添加依赖 在您的项目中添加Spring Data Redi…

掌握未来:打造高效、可靠系统的终极指南—RESTful API 设计详解

RESTful API 是一种软件架构风格和开发规范,它基于 Representational State Transfer(REST)原则。RESTful API 使用 HTTP 协议的标准方法,如 GET、POST、PUT、DELETE 等,来进行资源的创建、读取、更新和删除操作。这种…

四川易点慧电子商务抖音小店:创新引领,开启电商新篇章

随着互联网的快速发展,电子商务行业日新月异,抖音小店作为新兴的电商模式,正逐渐崭露头角。四川易点慧电子商务有限公司紧跟时代步伐,以创新思维引领抖音小店发展,成为了行业的佼佼者。 易点慧电子商务位于风景秀丽的四…

FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流

OBS是一个开源的直播录制软件,英文全称叫做Open Broadcaster Software,广泛用于视频录制、实时直播等领域。OBS不但开源,而且跨平台,兼容Windows、Mac OS、Linux等操作系统。 OBS的官网是https://obsproject.com/,录制…

如何安全可控的进行跨区域数据交换,提高数据价值?

跨区域数据交换指的是在不同地理位置或不同网络环境下的数据传输和共享。随着数字化转型的加速,企业及组织越来越依赖于数据的流动来优化业务流程、增强决策制定和推动创新。然而,跨区域数据交换也带来了一系列的挑战和风险,主要包括&#xf…

DFT(三)Yield

DFT(三)Yield 在集成电路(IC)设计和制造领域,特别是在数字全流程(Digital Full Flow,简称DFT)中,“Yield”(产量)是一个衡量从设计到最终产品过程…

【antd + vue】InputNumber 数字输入框 输入限制

一、需求说明 只能输入数字和小数点,保留小数点后两位;最多输入6位;删除所有内容时,默认为0; 二、问题说明 问题1:使用 precision 数值精度 时,超出规定小数位数时会自动四舍五入;…

python 基础语句

python 基础语句 1. import 语句 用于导入相应的包以供后面的代码使用 import xxx -将xxx包导入import pandas as pd - 导入 pandas 包并且将其所有的对象、方法、属性赋予 pd 对象from xxx1 import xxx2 - 从xxx1 包中导入 xxx2 方法 2. 输入输出语句 input,pr…

Java 基础重点知识-(Java 语言特性、数据类型、常见类、异常)

文章目录 Java 语言特性形参和实参的区别是什么?值传递和引用传递的区别?Java 是值传递还是引用传递?final 的作用是什么?final finally finalize 有什么不同?static 的作用是什么?static 和 final 的区别是什么? Java 数据类型Java基本数据类型有几种? 各占多少位?基…

Kasm Workspaces:云端工作的革命

工具用途 🛠️ Kasm Workspaces 是一款强大的开源容器流平台,它能够将云桌面、Web隔离以及OSINT工作负载直接交付到您的Web浏览器中。这意味着您可以通过任何地点的浏览器安全地访问您的工作环境,包括各种应用程序和桌面。🌍 主…

【C语言】自定义类型联合和枚举讲解超详细

人生只有回不去的过去,没有过不去的当下。 💓💓💓 目录 •🌙知识回顾 🍋知识点一:联合体 • 🌰1.联合体类型的声明 • 🌰2.联合体的特点 • 🌰3.相同成员的结…

Linux操作系统预备 —— 冯·诺伊曼体系结构

一,什么是冯诺伊曼体系结构?(是什么?) 上面的图就是冯诺伊曼体系结构的总体简略图,不着急,我们一个一个来看: 1.1 输入输出设备 人们要想用计算机处理数据,首先就要把要…

数据链路层(计算机网络)

0、前言 本文大多数图片都来自于 B站UP主:湖科大教书匠 的教学视频,对高军老师及其团队制作出这么优质的课程表示感谢。本文的撰写目的不是为了应试,且受限于个人水平,可能和标准答案有所出入,请自行甄别,…

Scikit-Learn回归树

Scikit-Learn回归树 1、决策树1.1、什么是决策树1.2、决策树学习的步骤1.3、决策树算法 1、决策树 决策树(DTs)是一种用于回归和分类的有监督学习方法。通常,决策树用于分类问题;当决策树用于回归问题时,称为回归树。回…