`
houlinyan
  • 浏览: 149312 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

mybatis 批量insert和普通insert的区别

 
阅读更多

有一个导入黑名单的需求,由于量比较大,所以先采用批量insert。拿批量insert 10000条做测试。

普通的insert 

<insert id="insert" parameterType="com.qiyi.zhibo.domain.QiyiZhiboBlackUser" >
  insert IGNORE into qiyi_zhibo_black_user (uid, create_time, operator
    )
  values (#{uid,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{operator,jdbcType=INTEGER}
    )
</insert>

 每秒1000条左右。

 

批量insert:

<insert id="batchInsert" parameterType="java.util.List" >
  insert IGNORE into qiyi_zhibo_black_user (uid, create_time, operator)
  VALUES
  <foreach collection="list" item="item" index="index" separator="," >
    (#{item.uid,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.operator,jdbcType=INTEGER}
    )
  </foreach>

</insert>

竟然每秒钟只有几条,好奇怪,把mybatis的debug日志打印出来,他会把10000条记录,分成多个sql,每个sql 批量插入255条数据(每一个sql的插入条数还不能,抽样算的条数,104,254,255都有,有点搞不懂,有空了看下代码)。

所以,暂时放弃使用批量,还是一条一条查吧,先把问题记在这里,有时间拜读下源码,看看问题出在哪里。

分享到:
评论

相关推荐

    Java实现mybatis批量插入数据到Oracle

    本篇文章将详细介绍如何利用Java和MyBatis实现批量插入数据到Oracle数据库中。 首先,我们需要理解Oracle数据库的一些基本概念。Oracle是世界上最流行的商业关系型数据库管理系统之一,以其强大的功能和高可靠性而...

    MyBatis批量插入(insert)数据操作

    总的来说,MyBatis的批量插入功能结合了Java代码的灵活性和SQL的高效性,是处理大批量数据插入的理想选择。通过理解并熟练运用`&lt;foreach&gt;`标签和`&lt;selectKey&gt;`标签,开发者可以轻松地在项目中实现批量插入操作。

    Mybatis批量foreach merge into的用法

    Mybatis批量foreach merge into的用法可以批量插入时间价格表数据,但是需要注意其缺陷和限制。在实际应用中,需要根据实际情况选择合适的方法。 知识点总结: 1. Mybatis批量foreach merge into的用法可以批量...

    Mybatis实现多表联合查询和批量插入

    Mybatis实现多表联合查询和批量插入 Mybatis是一款流行的持久层框架,它可以帮助开发者快速、高效地访问数据库。在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在数据库操作中,批量插入(Batch Insert)是一种提高性能的有效方式,尤其是在处理大量数据时。本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database ...

    MyBatis批量插入Update

    MyBatis批量插入Update ...MyBatis批量插入是一种高效的数据插入方式,可以大大提高插入速度和减少数据库交互次数。但是需要注意可能出现的内存不足的问题,并提前修改MySql的配置文件以避免这种情况。

    mybatis批量添加数据的方法1

    MyBatis批量添加数据的方法 MyBatis是一款流行的Java持久层框架,它提供了多种方式来批量添加数据,以下是其中两种常用的方法: 方法一:使用foreach标签 在MyBatis中,我们可以使用foreach标签来批量添加数据。...

    mybatis学习之路mysql批量新增数据的方法

    MyBatis批量新增数据方法详解 MyBatis是当前流行的持久层框架之一,提供了批量新增数据的方法来提高数据insert的...MyBatis批量新增数据方法可以提高数据insert的效率,提高了实际项目中的开发效率和数据处理能力。

    mybatis数据操作(增删改查+批量操作)

    在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...

    MyBatis_insert

    本篇文章将深入探讨MyBatis中`insert`元素的使用,通过实例Demo来阐述其核心概念和应用场景。 1. MyBatis映射器接口与XML映射文件 在MyBatis中,映射器接口是Java类,它定义了数据库操作的方法。而XML映射文件则...

    mybaits 多线程 实现数据批量插入 (运用CountDownLatch实现闭锁)

    本文将详细介绍如何利用MyBatis结合多线程和CountDownLatch闭锁来实现数据的批量插入。 首先,我们来看`mybatis批处理`。MyBatis的批处理功能允许我们在一次数据库连接中执行多条SQL语句,从而减少了数据库连接的...

    MyBatis动态SQL,MyBatis批量插入(Oracle数据库)[收集].pdf

    MyBatis动态SQL和批量插入的应用 MyBatis是一款功能强大且灵活的持久层框架,提供了多种方式来对数据库进行交互。其中,动态SQL是一种非常强大的特性,能够根据不同的条件生成不同的SQL语句。下面将详细介绍MyBatis...

    mybatis批量添加实现1

    【Mybatis批量添加实现详解】 在数据库操作中,批量插入数据是常见的需求,尤其是在处理大量数据时,批量插入能够显著提高效率。Mybatis,作为一款轻量级的持久层框架,提供了灵活的方式来处理批量添加。本文将详细...

    mybatis plus 5种批量操作性能测试

    MyBatis Plus 提供了单条数据插入的方法,`insert()` 或 `insertIntoTable()`. 这种方法适合插入单个实体对象,但在大量数据插入时效率较低。 2. **批量插入(Batch Insert)** 通过 `batchInsert(List)` 方法...

    Mybatis批量插入数据返回主键的实现

    Mybatis批量插入数据返回主键的实现 Mybatis是当前最流行的持久层框架之一,它提供了强大的批量插入功能,但是在批量插入数据时如何返回主键是一个常见的问题本文将详细介绍Mybatis批量插入数据返回主键的实现。 ...

    mybatis 批量插入 嵌套select.pdf

    MySQL不允许在同一个查询中对一个表进行DML(数据修改语言)操作(如INSERT、UPDATE、DELETE)和查询。因此,原始的语句: ```xml (#{chatMessages.fromUserId}, #{toUserId}, ... (SELECT from_user_id!=#{...

    Mybatis 3+Mysql 实现批量插入

    MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 ### 二、批量插入原理 批量插入的基本思想是将多条INSERT语句合并为一...

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    本文将深入探讨如何在 Mybatis Plus 中自定义批量插入和批量更新,并根据唯一索引来确保数据的唯一性。 首先,了解 Mybatis Plus 的批量操作基础。Mybatis Plus 提供了 `batchInsert()` 和 `batchUpdate()` 方法来...

    MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)

    MyBatis批量插入数据到Oracle数据库中的两种方式 MyBatis是一款流行的持久层框架,提供了批量插入数据到数据库的功能。本文将通过实例代码,分享MyBatis批量插入数据到Oracle数据库中的两种方式。 第一种方式:...

    SpringBoot使用mybatis批量新增500万数据到mysql数据库Demo

    在Mybatis的映射文件中,可以通过`&lt;insert&gt;`标签的`useGeneratedKeys`和`keyProperty`属性来处理主键自增,同时利用`&lt;foreach&gt;`标签进行数据遍历插入。 2. **事务管理**:SpringBoot集成Mybatis时,事务管理通常由...

Global site tag (gtag.js) - Google Analytics