数据量过大,使用saveBatch保存数据太慢如何解决:

news2024/11/18 1:38:47

数据量过大,使用saveBatch保存数据太慢如何解决:

在使用mybatis-plus的saveBatch方法时发现保存太慢,会生成一大堆的insert,而不是一批一批的,影响因素可能有两个,如下:

1. mybatis-plus使用saveBatch的时候,需要保证字段不为null,如果可能为null的话,在可以在注解上增加忽略

@TableField(value = "manager_name",insertStrategy = FieldStrategy.IGNORED)
    private String	managerName;

这样能保证saveBatch的时候只会有一个insert(当然这也取决于你用的批次大小,默认为1000一次insert)

如果没有特别要求,可以设置全局配置来保障,实际中使用批量保存的其实就特定表,也不是特别建议使用全局的配置,把可能的字段添加忽略就行了。

mybatis-plus:
  global-config:
    db-config:
      insert-strategy: ignored

修改完毕后,insert应该是一批一个insert,而不是一堆

如果需要查看具体原因,可参考,这位小伙伴测试的非常详细,我就不过多赘述了。

Mybatis-Plus saveBatch() 批量保存失效

2. 如果已经是一批一个insert以后,还是慢,则需要修改数据库链接,需要在数据库链接后面增加

rewriteBatchedStatements=true

这样在调用saveBatch的时候时间能得到有效提升

我导入的数据:
在这里插入图片描述
二十三万条,用了不到两分钟

解释:rewriteBatchedStatements=true

MySQL的JDBC连接的url中要加rewriteBatchedStatements参数,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。
MySQL JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。
只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL
另外这个选项对INSERT/UPDATE/DELETE都有效

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

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

相关文章

一文读懂SCADA系统的组件功能及应用

什么是SCADASCADA是一个功能强大的控制系统,旨在收集,分析和可视化来自工业设备的数据。SCADA系统自动提取、监控、处理、分发、记录和显示从远程现场设备(如传感器、工厂机器、电机、泵、阀门)和工业企业、制造设施、核电站和炼油厂等资产密集型环境中的…

kkFileView 文件在线预览部署

一、什么是kkFileView kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等。 官方地址kkFi…

MasterSlave概念与配置与eeprom信息擦除解决步骤

目录 一、Master&Slave概念与配置​ 1.Master&Slave概念​ 2.期待协商结果​ 3.RENIX配置​ 4.帮助文档​ 二、eeprom信息擦除解决步骤​ 1.使用SSH管理软件连接​​网络测试仪​​ 2.使用“cd /opt/eeprom”命令进入eeprom文件夹 3.进入eeprom文件夹 4.重启…

GPU云服务器CentOS环境下的配置教程

CnetOS环境部署 CentOS是支持自动安装的cuda以及相关驱动的,我们就直接安装吧 测试环境 登录后首先检查系统是否有支持 CUDA 编程的 GPU,使用如下命令查看当前GPU的型号。可以识别出NVIDIA T4 lspci | grep -i nvidia输入nvidia-smi,这里…

KernelShark分析内核任务执行过程

一、KernelShark简介 KernelShark是一个非常实用的工具,其可以搭配 trace-cmd 使用,将内核的任务执行过程以直观的形式展现出来。下面的文档中详细的介绍了KernelShark的使用方法和功能,这里不再详细描述 https://www.kernelshark.org/Docum…

C语言--模拟实现库函数strcpy

目录前言strcpy实现的基本原理函数的模拟实现代码优化assert--断言const关键字strcpy的返回值结语前言 本章内容我们将通过相关函数来实现库函数中的strcpy。 strcpy实现的基本原理 C语言 strcpy()函数用于对字符串进行复制(拷贝)。需要的头文件为 &l…

IPtables进行端口复用

目录第一种方式:ICMP做遥控开关1、创建端口复用链2、创建端口复用规则,将流量转发至22端口3、开启开关4、关闭开关5、lets do it第二种方式:利用tcp数据包的关键字做遥控开关1、端口复用链2、端口复用规则(与上面一致)3、开启开关4、关闭开关…

手机上怎么制作动图?两招教你手机在线制作gif动画

想要在手机上制作gif动态图片,还不想下载软件的时候要怎么办呢?很简单,下面给大家分享两招在线gif制作(https://www.gif.cn/)的工具,不需要下载任何软件。小白也能轻松上手,支持原画质导出&…

STM32 (十五)ESP8266WIFI

简介1 ESP8266wifi 模块低功耗串口WiFi模块ESP8266内置一个Tensilica(泰思立达) Xtensa架构的32位处理器L106,具有5级流水线(ARM CortexM3是3级流水线),最大时钟速度为160MHz,可以使用高达16MB的外部SPI Flash。 该模块…

Kotlin Navigation开发

前言 其实小编之前一直都是用的Java来开发Android,但是工作需求,开始了Kotlin的编程,接触到了JetPack,发现其中的Navigation特别有意思,今天来给大家分享一下,我们做一个四个页面吧,从APP的 欢…

2023年PMP考试如何备考?

下面我给各位正在学习备考或者正在犹豫是否报名的朋友分享下我的想法和学习经验,希望对各位朋友有帮助。 一, 关于读PMBOK 在整个学习和备考期间我总共读了五遍PMBOK,第一遍是粗略的读,在读的时候一定要有耐心,因为在…

电商系统的高质量容量保障是怎样“炼成”的?

一分钟精华速览 容量保障的目标是保证服务在大量用户访问时,依然可以正常为用户提供服务。比如,在“双11”购物节的超高访问量下,各电商系统依然能够稳定地运行,可以说容量保障是所有技术人都应当具备的技能。 知名技术博主老张…

【0-1背包变式题】何以包邮(来自Acwing寒假每日一题)

⭐️前面的话⭐️ 本篇文章介绍来自一道0-1背包的变式原题,展示语言java/C。 📒博客主页:未见花闻的博客主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📌本文由未见花闻原创,…

振弦采集模块监测传感器频率值不稳定

振弦采集模块监测传感器频率值不稳定 基本概念 振弦传感器:(vibrating wire sensor)是以拉紧的金属钢弦作为敏感元件的谐振式传感器。当弦的长度确定之后,其固有振动频率的变化量即可表征钢弦所受拉力的大小。根据这一特性原理&a…

2023华数杯B题社会稳定预警研究的材料支撑以及解题思路【全网独家社会稳定预警研究材料支撑】

B题社会稳定预警研究 材料支撑:(动态链接,后期会一直不断新增支撑论文进去) 社会稳定预警研究材料支撑合集下载 部分截图如下:(还会不断更新) 题目问题B:社会稳定预警研究 人类和…

【C语言】文件相关函数详解

🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 小苏希望大家能从这篇文章中收获到许…

C++类基础(四)

访问限定符与友元 ● 使用 public/private/protected 限定类成员的访问权限 //main.cpp struct Str { //结构体默认的访问权限,可以省略 //public:int x 0; private:int y 0; };int main() {Str m_str;//OK: 在同一个翻译单元内,结构体struct Str { .…

单车价值超整车售价?智能汽车「新赛道」扎堆供应商

汽车网络安全赛道正在进入新周期。 1月初,HL Mando与全球汽车网络安全方案提供商Argus Cyber Security达成协议,扩大网络安全技术合作。前者将Argus CAN入侵检测系统(IDS)解决方案应用于刹车和转向等电气化系统产品。 目前&#x…

希尔排序基本思想示例及代码

希尔排序是插入排序的一种,直接插入排序相关内容可见: https://blog.csdn.net/weixin_43978384/article/details/128836898?spm1001.2014.3001.5502 1、算法思想 希尔排序又称“缩小增量”的排序,属于插入排序的一种。希尔排序的基本思想是…

Springboot+ssm企业员工考勤管理系统

毕业的进度: 第一阶段 系统概要设计,设计系统架构,数据库模型 第二阶段 完成模块的开发与测试 第三阶段 实现主要模块 本公司员工管理系统的设计与实现以Springboot作为框架,B/S模式以及MySql作为后台运行的数据库。…