这次我又遇到了另一个问题,我有一些表,其中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)
最佳答案
用于链接表的列应该建立索引以提高性能:
CREATE INDEX table1_serial ON table1 (serial);
CREATE INDEX table2_serial ON table2 (serial);
当您尝试基于 WHERE t1.serial = t2.serial
更新表时,这将允许 MySQL 快速创建表之间的关系。
关于mysql - 如何加快mysql主表多表更新速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24975002/