这次我再次提出另一个问题,我有一些表,其中table1是进程表,其中包含一些有用的信息,如进程ID,日期等,我需要做的是我必须更新process_id和process_date来自table1到table2,table3等序列号相同时,table1的大小最小约为50k,但其他表格非常大,如300k,700k行,我想加快更新,如果有任何好办法请告诉我
到目前为止,我已经尝试过这样的事情,作为一个初学者我也有点困惑,我可能有些不对劲,可能会有一些好方法......希望你们能理解我。
update table2 t2,table1 t1
set
t2.process_id = t1.process.id,
t2.process_date = t1.process_date
where
t1.serial = t2.serial
mysql> select count(*) from table1;
+----------+
| count(*) |
+----------+
| 27610 |
+----------+
1 row in set (0.13 sec)
mysql> select count(*) from table2;
+----------+
| count(*) |
+----------+
| 321827 |
+----------+
1 row in set (0.18 sec)
答案 0 :(得分:2)
用于链接表的列应编入索引以提高性能:
CREATE INDEX table1_serial ON table1 (serial);
CREATE INDEX table2_serial ON table2 (serial);
当您尝试根据WHERE t1.serial = t2.serial
更新表时,这将允许MySQL快速创建表之间的关系。