我的大表加入有什么问题吗?

时间:2013-02-27 21:47:50

标签: mysql sql

我正在进行以下查询:

UPDATE extlinks
INNER JOIN sp_board using (title)
SET extlinks.board_id = sp_board.id

两个title列都是索引,以及board_id列和id列(它是主索引)。 extlinks有645万行,而sp_board有大约370万行。两张桌子都是Innodb。

我在一个多小时前开始加入,但它还没有完成。这是正常的吗?如果是的话,我可以期待多长时间?如果没有,任何关于可能出错的想法?​​

TIA!

1 个答案:

答案 0 :(得分:1)

对于大型更新,几小时的运行时间是正常的。如果您正在使用InnoDB,MySQL服务器必须为您的更新生成一个事务,因此如果需要它可以回滚它。这需要很多开销。在此操作期间,您的服务器可能正在使用大量RAM和IO。

稍等一下。