IT袋

当前位置:主页 > 经验教程 > 建站编程 >

MyBatis批量插入数据优化

MyBatis批量插入数据优化

时间:2023-12-31 10:48:21 来源:IT袋 作者:马勇
导读:MyBatis批量插入数据优化,小编为网友们解答MyBatis批量插入数据优化的内容,接下来IT袋网带大家一起了解。 在项目开发中,我们经常需要进行大量数据的批量插入操作。 然而,在实际应用中,插

MyBatis批量插入数据优化

小编为网友们解答MyBatis批量插入数据优化的内容,接下来IT袋网带大家一起了解。

在项目开发中,我们经常需要进行大量数据的批量插入操作。

然而,在实际应用中,插入大量数据时性能常常成为一个瓶颈。

在不念最近的项目中,我发现了一些能够显著提升批量插入性能的方法,并进行了一系列实验来验证它们的有效性。

背景介绍

我们使用了 mybatis-plus 框架,并采用其中的 saveBatch 方法进行批量数据插入

然而,通过深入研究源码,我发现这个方法并没有如我期望的那样高效

MyBatis批量插入数据优化

这是因为最终在执行的时候还是通过for循环一条条执行insert,然后再一批的进行flush ,默认批的消息为1000

MyBatis批量插入数据优化

为了找到更优秀的解决方案,我展开了一场性能优化的探索之旅。好了我们现在开始探索

实验准备

  • 创建一张表tb_student
create table springboot_mp.tb_student
(
    id      bigint auto_increment comment '主键ID'
        primary key,
    stuid   varchar(40)   not null comment '学号',
    name    varchar(30)   null comment '姓名',
    age     tinyint       null comment '年龄',
    sex     tinyint(1)    null comment '性别 0 男 1 女',
    dept    varchar(2000) null comment '院系',
    address varchar(400)  null comment '家庭地址',
    constraint stuid
        unique (stuid)
);
  • 创建spring-boot-mybatis-demo项目并在pom.xml中添加依赖

MyBatis批量插入数据优化

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.3</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
</dependencies>
  • application.yml配置
server:
  port: 8890
spring:
  application:
    name: mybatis-demo #指定服务名
  datasource:
    username: root
    password: root
#    url: jdbc:mysql://localhost:3306/springboot_mp?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
    url: jdbc:mysql://localhost:3306/springboot_mp?useUnicode=true&characterEncoding=utf8
    driver-class-name: com.mysql.cj.jdbc.Driver
#
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:/mapper/**/*.xml
  • 使用mybatisX生成代码

相关阅读

  • 如何创建一个网页前端 web创建一个简单网页教程

    如何创建一个网页前端 web创建一个简单网页教程

    IT电脑小知识篇,关于如何创建一个网页前端和web创建一个简单网页教程的相关知识,接下来就是全面介绍。 首先我要说学习前端网页制作其实很简单! 今天我带着你踏入前端开发的大门,我

  • sql查询语句实例教程 sql查询语句大全及实例

    sql查询语句实例教程 sql查询语句大全及实例

    最近在学习sql数据库教程的时候,顺便记录了一下笔记,相信很多人也在搜索: 常用的sql查询语句实例大全 ,经过我的学习实践总结,当然这是最基本的sql查询语句代码。 sql查询语句 SELECT

  • 创建自己的个人网站怎么弄 网页设计制作网站

    创建自己的个人网站怎么弄 网页设计制作网站

    小编为大家讲一讲创建自己的个人网站怎么弄和网页设计制作网站的方法内容,很不错的方法小知识,建议收藏哦! 随着个人创业的流行,很多个人也需要一个比较详细的网站来展示自己,开

  • 多租户SaaS平台的数据库方案详解

    多租户SaaS平台的数据库方案详解

    正文核心导读:多租户SaaS平台的数据库方案详解的教程内容,下面来一起了解一下吧。 随着云计算和SaaS(Software as a Service)模型的兴起,多租户系统成为了构建灵活、高效应用的重要架构。