首页
学习
活动
专区
圈层
工具
发布

记录一次批量插入的优化历程

我接过了这个bug,经过仔细查看代码后发现,代码卡在了一个批量插入的SQL语句上,就是比如前端保存 9999 的时候,后端的业务逻辑要进行 9999 次的批量插入。...三、方案二     经过我们公司的架构师介绍说,要不用 Spring 的 jdbcTemplate 的 batchUpdate() 方法来执行批量插入吧!听过会走二级缓存?...4096M #配置成cpu的线程数 innodb_thread_concurrency = 24 #查询缓存大小,必须设置成1024的整数倍 query_cache_size = 128M #为一次插入多条新记录的...五、方案三     架构师又介绍了我一种 Spring+Mybatis 的 sqlSessionTemplate 来批量插入数据,闻言效率更高!...该文旨在介绍多种处理批量插入的方式,解决问题的思路不一定适用,毕竟最后发现完全走错了路...

1.4K20

Mybatis批量插入与存储过程批量插入

前言在数据库操作中,批量插入是一个常见的性能优化手段,特别是在需要插入大量数据时。Mybatis作为一款优秀的持久层框架,提供了多种批量插入数据的方式。...除了传统的Mybatis映射文件中的批量插入外,还可以利用存储过程来实现批量插入。本文就来讲解一下Mybatis常用的几种批量插入方式,以及重点介绍存储过程插入。1....Mybatis传统批量插入Mybatis中可以通过在Mapper XML文件中编写批量插入的SQL语句,并在Java代码中通过List或数组的形式传递参数来实现批量插入。...这种方式需要确保SQL语句支持批量插入,并且需要在Mybatis的配置文件中启用批量操作。...使用存储过程进行批量插入可以减少与数据库的交互次数,提高性能。在上面的示例中,你已经展示了如何使用存储过程来批量插入数据。

1.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL 批量插入记录报 Error 1390 (HY000)

    1.背景 Golang 后台服务使用 GORM 实现与 MySQL 的交互,在实现一个通过 Excel 导入数据的接口时,使用 Save 方法一次性插入大量记录(>1w)时报了如下错误: Error 1390...错误描述字面意思是“预处理语句包含太多占位符”,结合业务场景,猜测原因是一次插入太多记录。 3.分批插入 既然不允许一次插入太多记录,那么可以改为分批插入,而不是一次性插入所有数据。...// 待插入的记录。...不知道你有没有疑问,我这里分批插入每批记录数是 1000,那可以采用 2000 或者其他数量吗?每批插入记录数的上限是多少呢? 带着这个疑问,请继续往下看。 4.一次最多能插入多少条记录?...MySQL 服务端之所以报 Error 1390 (HY000) 错误,直接原因是一次插入过多的记录,但更深层次的原因是 MySQL SQL 语句的占位符数量有上限,最大值为 16bits 无符号整数的最大值

    1.8K20

    pymysql批量插入数据

    使用`pymysql`库在Python中循环插入大量数据时,可以采用以下步骤来提高效率:1. 使用`executemany`方法进行批量插入,而不是在循环中对每条数据调用`execute`。2....适当时候提交事务,而不是每插入一条数据就提交一次,这样可以减少事务提交的开销。3. 使用游标(cursor)对象的`executemany`方法来执行批量插入。...', cursorclass=pymysql.cursors.DictCursor)try: with connection.cursor() as cursor: # 准备批量插入的数据...SQL语句 insert_query = "INSERT INTO tablename (id, name, score) VALUES (%s, %s, %s)" # 执行批量插入操作...- 在实际应用中,你可能需要根据实际的数据结构和业务逻辑来生成和插入数据。这种方法可以显著提高插入大量数据的效率,因为它减少了与数据库的通信次数和事务提交的次数。

    1.3K10
    领券