テーブル B からすべてのレコード table_id を最速で更新する方法は、old_id を使用する両方のテーブルのリンクに依存します。両方のテーブルに複数のレコードがあり、テーブル 2 を更新するたびに、テーブル B からすべての table_id を更新するのに時間がかかります。レコードの更新を高速化する方法に関する提案。
更新に時間がかかるクエリは次のとおりです。 3 つのクエリはすべてテスト済みですが、更新が非常に遅くなります。任意の提案をしてください:
Query 1:
UPDATE Table_B dest
SET table_id = (SELECT id FROM Table_A WHERE old_id = dest.old_id )
WHERE table_id = 0;
Query 2:
UPDATE Table_B dest
INNER JOIN Table_A src ON dest.old_id = src .old_id
SET dest.table_id = src .id
WHERE dest.table_id = 0;
Query 3:
UPDATE Table_B dest, Table_A src
SET dest.table_id = src.id
WHERE dest.old_id = src.old_id AND dest.table_id = 0;
Table_A
id | old_id | fullname
1 2131 Name 1
2 2132 Name 2
3 2133 Name 3
4 2134 Name 4
..................... and so on (8000 records)
Table_B
id | table_id | old_id | work
1 0 2131 Work 1
2 0 2131 Work 2
3 0 2131 Work 3
4 0 2132 Work 1
5 0 2132 Work 2
6 0 2132 Work 3
7 0 2133 Work 1
8 0 2134 Work 1
..................... and so on (55000 records)