TypeORM批量插入
在 TypeORM 中,批量插入数据可以通过多种方法实现,包括 save、insert 和 createQueryBuilder。这些方法各有优缺点,适用于不同的场景。
使用 createQueryBuilder 进行批量插入
createQueryBuilder 是性能最优的批量插入方法。以下是一个示例:
这种方法在插入大量数据时非常高效1。如果不需要插入数据后的 ID,可以通过设置 updateEntity(false) 来避免额外的 SELECT 查询:
使用 save 方法进行批量插入
save 方法也可以用于批量插入,但它会触发实体监听器和订阅者,并返回保存后的对象,包括自动生成的 ID:
save 方法适用于需要处理实体监听器和订阅者的场景2。
处理插入冲突
在并发情况下,插入数据可能会出现主键冲突。可以使用 ON DUPLICATE KEY UPDATE 语句来处理这种情况:
这种方法可以有效地处理主键冲突,并更新已有记录1。
总结
在 TypeORM 中,批量插入数据可以通过 createQueryBuilder、save 和 insert 方法实现。根据具体需求选择合适的方法,可以提高插入效率并处理可能的冲突。