首页 > 其他分享 >最牛逼的关于SpringBootJpa批量写入的问题讲解

最牛逼的关于SpringBootJpa批量写入的问题讲解

时间:2025-01-08 10:59:22浏览次数:11  
标签:insert 事务 SpringBootJpa 写入 提交 sql 最牛 save table

  • SpringBoot jpa默认批量写入性能很差分析

很多人认为是一条sql一条sql执行的问题,故而改为了insert into table values(),() 一条sql执行多条数据插入,当然这样没有问题,也是常用的解决办法;但本质上是事务控制的问题,默认save,或者saveAll(本质也是save),一个save就是一条sql 的insert,提交一个事务进而导致写入性能低。

  • 思路
    控制事务提交次数,在一个事务内提交一个批次的sql,虽然也是多个insert 但是效率依然非常高;
    比如:insert into table() values(),() 拼接200多个提交一次实现批量跟
START TRANSACTION;
 
INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');
UPDATE your_table SET column1 = 'new_value' WHERE column2 = 'value2';
 
COMMIT;

200条效率是一样的,没有明显差异。
但是手动控制事务可以让一个事务提交10000条,而values拼接则不能拼接太多,所以从事务提交数量来讲第二种效率一定是最高的,以下我用一个例子说明。

  • 建表
CREATE TABLE `t_test_batch` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `a` varchar(100) DEFAULT NULL,
  `b` varch

标签:insert,事务,SpringBootJpa,写入,提交,sql,最牛,save,table
From: https://blog.csdn.net/baidu_34848066/article/details/145001433

相关文章

  • Transitions:世界上最牛逼的状态机Python库
    引言状态机是一种用于描述和处理事物状态变化的数学模型。它通过定义一系列状态以及在这些状态之间流转转换来模拟复杂的业务逻辑或系统行为。对于开发者而言,实现一个可靠且易于维护的状态机并非易事。然而,随着Python社区的发展,出现了一些优秀的工具可以帮助我们更轻松地构......
  • Flink同步mysql写入Iceberg异常,一秒写入一次
    1、现象在Iceberg数据湖治理过程中发现,同步任务运行7天没有写入数据,运行7天后突然大批量产生Commit,一秒产生一个Commit。 2、问题Flink写入checkpoint时会在checkpoint中先记录一个递增id,commit后会在Iceberg表中记录一个递增commitID,记录了两个id,默认两个id相等。通过不......
  • 黄药师药业管理软件 UploadFile实例 任意文件写入致RCE漏洞复现(附脚本)
    0x01产品描述:        ‌黄药师药业管理软件‌是一款针对我国医药或医疗器械企业经营管理特点而设计的综合管理软件。它集进销存、财务、经营分析和GSP管理为一体,能够系统地管理企业的资金流、物流和信息流。该软件采用“一看就懂,一学就会,一用就灵”的开发理念,人机界......
  • 解决网站设置为只读后仍被入侵写入文件的问题
    问题描述: 用户将网站根目录设置为只读权限,但仍然发现有恶意文件被写入。请求协助清理并恢复数据,确保网站安全。回答: 您好,针对您提到的网站设置为只读后仍被入侵写入文件的问题,我们已经为您进行了以下处理和建议:数据恢复与清理:我们已经恢复了主机空间的数据备份,并清除了一......
  • java8--类PrintWriter--文件内容写入--println&print&printf
    PrintWriterout=null;try{out=newPrintWriter("./src/test/myfile.txt","UTF-8");}catch(FileNotFoundExceptionfileNotFoundException){fileNotFoundException.printStackTrace();}catch(UnsupportedEncodingExceptio......
  • 如何更改云服务器文件夹属性以允许写入操作?
    您好,关于您提到的更改D:\www\kelixchao\www\source\plugin文件夹下的Tom开关文件夹属性的问题,我们理解您的困扰。首先,需要明确的是,文件夹属性中的灰色勾选并不一定表示只读属性。实际上,这些文件夹通常是可读写的。如果您遇到无法写入的情况,可能是由于其他权限或安全设置导致的。......
  • DiskSpd 是一个由微软开发的强大的存储性能测试工具,主要用于测试磁盘、存储设备和系统
    ReleaseDISKSPD2.2·microsoft/diskspd·GitHub 什么是DiskSpd?DiskSpd是一个由微软开发的强大的存储性能测试工具,主要用于测试磁盘、存储设备和系统的I/O性能。它是一个命令行工具,允许用户模拟不同的负载模式(如顺序读取、顺序写入、随机读取、随机写入等)来评估磁盘......
  • Hudi数据湖_数据写原理_COW和MOR表Upsert原理_Flink和Spark写入区别_Insert和Overwrit
    可以看到数据写操作,有三种方式upsert就是通过index索引来,对数据到底是insert还是update会做上标记,并且,只有索引到了数据才会update,所以是依赖index索引的.insert就是不停的插入数据,跳过了index,插入快,但是有重复数据,可能需要自己处理bulk_insert 写排序默认......
  • xml文件创建/写入
    创建xml文件publicvoidCreateXmlFile(stringLayoutFileXml,intid){XmlDocumentxmlDoc=newXmlDocument();//创建类型声明节点XmlNodenode=xmlDoc.CreateXmlDeclaration("1.0","utf-8","");xmlDo......
  • 日志文件爆满_开发脚本每小时自动检测日志大小_定期清理日志_生产环境redis宕机_无法
     今天日志数据占用磁盘爆满,正常运行的系统发生,redis无法写入的报错,导致共用的redis服务器,瘫痪了,很多系统都进不去了. 最后查了一下才知道,是因为磁盘上一个日志文件170多GB了,都是日志.看看怎么处理:首先编写一个脚本,用来循环检测,每一个小时检测文件大小,如果超过......