【发布时间】:2021-12-11 05:37:54
【问题描述】:
我正在使用 TypeORM 在一个事务中执行两个操作。他们的订单没有任何意义。
使用 Promise.all 真的会更快,还是命令在内部排队?
基本上,这2个选项的效率有区别吗?
// Option 1
getManager().transaction(async manager => {
await Promise.all([
manager.insert(...),
manager.update(...),
]);
});;
// Option 2
getManager().transaction(async manager => {
await manager.insert(...);
await manager.update(...);
});
澄清一下,我知道Promise.all 由于单线程逻辑和事件循环等等,总体上可以大大提高 JavaScript 的性能。
我在同一个事务管理器中专门询问 TypeORM 和多个查询,因为它们似乎按顺序运行,无论是否涉及 Promise.all
【问题讨论】:
-
您是否希望您的插入和更新并行运行?这似乎与 typeorm AFAICS 无关
-
如果是MySQL:一个连接只能执行1个查询,一个事务只能发生在一个连接上。如果您使用事务,您可能必须按顺序执行操作。
标签: typescript typeorm