如何从主表加速mysql多表更新
这次我又遇到了另一个问题,我有一些表,其中表1是进程表,其中包含一些有用的信息,如进程id、日期等,我需要做的是,我必须将进程id和进程日期从表1更新到表2、表3等,当序列号相同时,表1的大小很小,最大大约50k,但是其他的表非常大,比如300k,700k行,我想加快更新速度,如果有什么好办法请告诉我 到目前为止,我已经尝试过这样做,作为一个初学者,我也有点困惑,我可能是错的,可能有一些好办法…希望你们能理解我如何从主表加速mysql多表更新,mysql,Mysql,这次我又遇到了另一个问题,我有一些表,其中表1是进程表,其中包含一些有用的信息,如进程id、日期等,我需要做的是,我必须将进程id和进程日期从表1更新到表2、表3等,当序列号相同时,表1的大小很小,最大大约50k,但是其他的表非常大,比如300k,700k行,我想加快更新速度,如果有什么好办法请告诉我 到目前为止,我已经尝试过这样做,作为一个初学者,我也有点困惑,我可能是错的,可能有一些好办法…希望你们能理解我 update table2 t2,table1 t1 set t
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)
应为用于链接表的列编制索引以提高性能:
CREATE INDEX table1_serial ON table1 (serial);
CREATE INDEX table2_serial ON table2 (serial);
这将允许MySQL在您尝试根据
更新表时快速创建表之间的关系,其中t1.serial=t2。serial
在两个表中都被索引了吗?这将为您节省大量时间。两个表中都有序列号列,先生,请告诉我解决方案