【发布时间】:2021-12-27 01:18:15
【问题描述】:
我有一个 SQL UPDATE,但运行时间太长。记录数超过 400000。
UPDATE items i
SET i.itemId = (SELECT o.id FROM itemOri o WHERE i.barcode = o.barcode);
【问题讨论】:
-
两个表中的
barcode列是否都有索引?
我有一个 SQL UPDATE,但运行时间太长。记录数超过 400000。
UPDATE items i
SET i.itemId = (SELECT o.id FROM itemOri o WHERE i.barcode = o.barcode);
【问题讨论】:
barcode 列是否都有索引?
确保您在两个表中的 barcode 列上都有索引。然后使用JOIN 而不是子查询:
UPDATE items i
JOIN itemOri o ON i.barcode = o.barcode
SET i.itemId = o.id
【讨论】: