1

我正在尝试使用来自不同表中的列的数据更新表中的列。我的代码是:

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

我的问题如下:两个表都非常大(数百万行),我想如果我只合并必要的列,我可能能够加快更新速度。如何指定联接只应包含上述代码中的列?

4

1 回答 1

2

这是由 RDBMS 如何实现关系代数来处理的。

简而言之,服务器只会“实现”所需的数量。这里没有问题,并且在 SQL 中说“仅在连接中包含 X 列”是没有意义的——这些列可以被认为不包括在内,除非以后需要它们(常见的情况是发送结果的 SELECT给客户)。在这种情况下,sp_board.id实际上只需要该列。

但是,请注意 Rocket Hazmat 的评论 - 它围绕记录(而不是列)的物化 - 因为它提出了一个非常有趣的问题。我不知道答案是什么。

于 2013-02-27T20:37:07.377 回答