如何使用mysql有效地更新数千条记录

时间:2013-10-24 01:08:16

标签: mysql sql

如何以最快的方式更新表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)

0 个答案:

没有答案