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 に答える