加快将ID从一个大mysql表插入另一个

时间:2018-08-28 08:34:35

标签: php mysql database

我可以实现我想做的事情,速度非常慢,而且我敢肯定有更好的方法。这是一个摘要:

我有两个表是从两个文本文件(通过LOAD DATA INFILE)导入的。这些表之间还没有主键和外键关系。

表1-事件:150万行(person_id值为空)

+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| event_id     | int(11)      | NO   | PRI | NULL    | auto_increment |
| person_id    | int(11)      | NO   | UNI | NULL    |                |
| event_details| longtext     | NO   |     | NULL    |                | 
| person_name  | varchar(30)  | NO   |     | NULL    |                |
| mother_name  | varchar(30)  | NO   |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+

表2-人员:140 000行

+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| person_id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| person_name  | varchar(30)  | NO   |     | NULL    |                |
| mother_name  | varchar(30)  | NO   |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+

我正在尝试将person_id表中的people插入events表中。

我尝试了几种方法,基本上遍历events表的每一行,使用person_id和{{1在people表中找到person_name }}在mother_name表的当前行中。然后将events插入person_id表中。

我当前的查询需要5天的时间才能更新events表中的所有150万行。我怎样才能更快呢?

我正在使用laravel和php,但欢迎任何建议。

0 个答案:

没有答案