我可以实现我想做的事情,速度非常慢,而且我敢肯定有更好的方法。这是一个摘要:
我有两个表是从两个文本文件(通过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,但欢迎任何建议。