当前位置:网站首页>typeorm 批量插入数据优化和插入冲突操作
typeorm 批量插入数据优化和插入冲突操作
2022-08-09 13:26:00 【祥仔先生】
d本文主要记录一下批量插入数据的优化。
一、批量插入
首先能实现批量插入在typeorm中有save、insert和createQueryBuilder 这三种都可以。
根据官网上介绍的
You can create INSERT queries using QueryBuilder. Examples:
await dataSource
.createQueryBuilder()
.insert()
.into(User)
.values([
{ firstName: "Timber", lastName: "Saw" },
{ firstName: "Phantom", lastName: "Lancer" },
])
.execute()
This is the most efficient way in terms of performance to insert rows into your database. You can also perform bulk insertions this way.
这是一个非常搞笑的批量插入。但是我们发现如果我插入500条数据还会在操作日志中,还有跟着500条select 查询对应插入数据的id。加入我们不需要这个id的话 我们是可以关闭这个select的
entityManager
.createQueryBuilder()
.insert()
.into("user")
.values(users)
.updateEntity(false)
.execute();或者save操作的时候增加参数{ reload: false }。
二、插入如果出现冲突的操作
有的时候在并发情况下插入数据会出现Duplicate entry '6' for key 'PRIMARY 主键冲突。
当然了 如果加分布式锁也会有一定影响。
- 加分布式锁也可能会影响消费者的消息处理速度。
- 消费者依赖于redis,如果redis出现网络超时,我们的服务就悲剧了。
如果对业务影响不是很大的话 可以考虑使用下面的语句。
await connection.createQueryBuilder()
.insert()
.into(Post)
.values(post2)
.onConflict(`("id") DO NOTHING`)
.execute();
await connection.createQueryBuilder()
.insert()
.into(Post)
.values(post2)
.onConflict(`("id") DO UPDATE SET "title" = :title`)
.setParameter("title", post2.title)
.execute();对应的sql语句
INSERT INTO table (column_list)
VALUES (value_list)
ON DUPLICATE KEY UPDATE c1 = v1, c2 = v2,...;边栏推荐
- MySQL主从同步原理
- Where to go to IOE-EBS
- 操作系统迁移实战之在openEuler上部署MySQL数据库
- pytest 之 allure报告
- C语言 指针的解引用详解
- 程序员的七夕怎么过?不会是写代码吧
- 12. cuBLAS Development Guide Chinese version--Level-1 functions asum() and axpy() in cuBLAS
- 11.cuBLAS开发指南中文版--cuBLAS中的Level-1函数amax()和amin()
- X264性能优化
- Jetpack Compose - Use of TextField and OutlinedTextField (text box)
猜你喜欢
随机推荐
Spark Sql之join on and和where
openharmony容器组件之Row
Xshell建立SSH隧道连接
记一次 ERROR scheduler.AsyncEventQueue: Dropping event from queue shared导致OOM
11. cuBLAS Development Guide Chinese version--Level-1 functions amax() and amin() in cuBLAS
C语言中常用的数组排序方法:冒泡排序、选择排序、插入排序、数组的移动(含代码详解)以及相关联系题
浅谈CQRS模式
Jetpack Compose——Image(图片)的使用
关于舵机的漂移与不听指挥乱动的问题
RTP打包发送H.264
2个有序数组排序
哈希表卡片
Column of openharmony container component
三种ThreadLocal,玩转线程变量保存与传递
目标检测类间不平衡问题
C语言中的运算符(超全超详细)
oracle财务数据权限思考
LNMP架构搭建之论坛
CutefishOS系统默认自动桌面壁纸
Jetpack Compose——TextField及OutlinedTextField(文本框)的使用









