gpt4 book ai didi

postgresql - 更新大量数据postgresql

转载 作者:行者123 更新时间:2023-11-29 14:37:25 24 4
gpt4 key购买 nike

使用的主表是transaction,可以存储百万行(假设最多4-5百万行)。我需要尽快更新状态。

更新查询如下所示:

UPDATE transaction SET transaction.status = 'TO_EXECUTE'
WHERE transaction.id IN (SELECT transaction.id FROM transaction
JOIN anotherTable ON transaction.id = anotherTable.id
JOIN anotherTable2 ON transaction.serviceId = ontherTable2.id
WHERE transaction.status = :filter1, transaction.filter2 = :filter2, ...)

你有更好的解决方案吗?创建另一个表来存储状态和 id 会更好吗? (我认为 updating large Tables 可能真的很慢)。

最佳答案

您的查询的 IN 部分可能会被重写为“存在”以可能获得改进,具体取决于其他表格布局和数量。此外,您很可能不需要在子查询中再次提及事务表(存在或在)

 UPDATE transaction tx SET transaction.status = 'TO_EXECUTE'
WHERE exists (SELECT *
FROM anotherTable
JOIN anotherTable2 ON tx.serviceId = anotherTable2.id
WHERE anothertable.id=tx.id and
transaction.status = :filter1 and transaction.filter2 = :filter2,
...)

关于postgresql - 更新大量数据postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42207735/

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