我有2张Innodb表。在TableA中,我有一个列(guidNew),我想根据TableA(guid)和TableB(所有者)中的列之间的关系将其值分配给TableB(所有者)中的列。
基本上Tabl6eB(所有者)有多个条目对应一个TableA(guid)。这是一对多的关系。我想将TableB(所有者)值更改为新的TableA(guidNew)值。
这是查询的一个示例:
UPDATE `TableB`, `TableA`
SET
`TableB`.`owner` = `TableA`.`guidNew`
WHERE `TableB`.`guid` != 0
AND `TableB`.`owner` = `TableA`.`guid`;
现在我不知道这是否有效,因为有超过200万条目。有没有办法知道它所取得的进展,更重要的是,这是一种更快的方法。
答案 0 :(得分:2)
确保您已为guid和所有者列编制了索引。
尝试使用EXPLAIN
命令查看查询的执行方式
EXPLAIN SELECT TableB.owner, TableA.guidNew
FROM TableB, TableA
WHERE TableB.guid != 0
AND TableB.owner = TableA.guid