Mysql更快更新

时间:2011-03-06 05:40:42

标签: mysql sql-update

我有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万条目。有没有办法知道它所取得的进展,更重要的是,这是一种更快的方法。

1 个答案:

答案 0 :(得分:2)

确保您已为guid和所有者列编制了索引。

尝试使用EXPLAIN命令查看查询的执行方式

EXPLAIN SELECT TableB.owner, TableA.guidNew
FROM TableB, TableA
WHERE TableB.guid != 0 
AND TableB.owner = TableA.guid