首页 > 解决方案 > 是否可以防止 prisma 中每个查询的新连接数?

问题描述

数据库模型

model User {
  id                        String    @id @default(uuid())
  name                      String    
  email                     String    
}

代码

async function updateUsers() {
   const userIdsToUpdate = ['user1', 'user2', 'user3'];
   const userPromises = [];
   for (const userId of userIdsToUpdate) {
      userPromise.push(db.user.update({
         where: { id: userId },
         data: { name: 'someName', email: 'someEmail' }
      }))
   }
   await Promise.all(userPromises);
}
updateUsers();

问题:对于每个查询,Prisma 都从连接池中获取一个新连接,我们可以重用这个连接吗?

如果我们使用类似的事务,我们可以减少到一个连接

await db.$transaction(userPromises) // replaced the `Promise.all` line.

但是交易太慢了。我们可以让交易更快吗?

配置:

postgres - 13.1
prisma client - 2.18.0

标签: javascriptpostgresqltransactionsprisma

解决方案


推荐阅读