typeorm.js mysql 查询性能疑问

2022-10-25 18:56:28 +08:00
 oppddd

哪个性能好?

// 1. 多次查询
const users = await Promise.all(userIds.map(id => {
  return this.userRepository.findOne({
    where: {
      id
    }
  })
}))

// 2. 一次查询
const users = await this.userRepository.createQueryBuilder('user')
  .where('user.id IN (:...ids)', { ids: userIds })
  .getMany()


3938 次点击
所在节点    Node.js
4 条回复
optional
2022-10-25 19:10:14 +08:00
一般情况肯定是 2 的性能比较好(只考虑数据库)。
但是如果放到实际项目中如果考虑缓存系统的话,1 的适应度反而会更高,缓存更友好更好控制。
lmshl
2022-10-25 21:18:45 +08:00
必然是 2 性能好,缓存交给数据库自己去做就行,这种主键检索数据库自己的缓存比什么都快
oppddd
2022-10-25 23:13:47 +08:00
@optional 适应度更高是因为都是 js, 缓存更友好没理解是啥意思,大佬解惑下
optional
2022-10-26 09:56:53 +08:00
@liuxsen93 通过内部 api 获取对象的时候,因为都是通过主键操作增删改查,可以通过 id 去控制对象的缓存同步。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/889794

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX