0

テーブル 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)
4

0 に答える 0