现在,我正在进行工作流的方式如下:
现在我在每次API提取后都在进行update
,但您可以想象这不是最优化的方式。
我还有其他选择吗?
答案 0 :(得分:0)
代码中的瓶颈可能是从API获取数据。这个技巧只允许更快地向DB发送许多小查询,而不必等待每次更新之间的往返时间。
要在单个查询中执行多个更新,您可以使用公用表表达式并将多个小查询打包到单个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)
实现有一个错误。