gpt4 book ai didi

node.js - knex.js 多个更新优化

转载 作者:行者123 更新时间:2023-11-29 13:47:27 43 4
gpt4 key购买 nike

现在我的工作流程是这样的:

  1. 从 postgres 数据库中获取行列表(假设 10.000)
  2. 对于每一行,我需要调用一个 API 端点并获取一个值,因此从 API 返回 10.000 个值
  3. 对于返回值的每一行,我需要更新数据库中的一个字段。 10.000 行已更新

现在我在每次获取 API 后执行 update,但正如您想象的那样,这不是最优化的方式。

我还有什么其他选择?

最佳答案

该代码的瓶颈可能是从 API 获取数据。这个技巧只允许更快地向数据库发送许多小查询,而不必在每次更新之间等待往返时间。

要在单个查询中执行多个更新,您可以使用通用表表达式并将多个小查询打包为单个 CTE 查询:

https://runkit.com/embed/uyx5f6vumxfy

knex
.with('firstUpdate', knex.raw('?', [knex('table').update({ colName: 'foo' }).where('id', 1)]))
.with('secondUpdate', knex.raw('?', [knex('table').update({ colName: 'bar' }).where('id', 2)]))
.select(1)

knex.raw 技巧有一个解决方法,因为 .with(string, function) 实现有一个错误。

关于node.js - knex.js 多个更新优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46069822/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com