如何将数据从大文件上传到mysql

问题描述 投票:0回答:1

我有一个文件有三列移动电话号码,公司名称和状态有数百万条记录。我已经从文件中读取数据并将各列中的数据存储在各自的数组中。我会使用loadInfile mysql但问题是而不是公司名称,我想存储存储在我的mysql表中的company_ids。所以基本上我想做的是用他们的company_ids替换公司名称,但问题是简单的选择语句需要花费很多时间,因为记录是数百万。请建议我一个可行的方法thankx.just为了理解我在下面给出一个代码

$company_names_arr=array('ABC','Def','Ghi',.......);

foreach($company_names_arr as $arr)
 {
  $this->db->select('company_id');
  $this->db->from('companies_info');
  $this->db->where('company_name',$arr);
  $q=$this->db->get();
  $res=$q->result();
  $company_ids_arr[]=$res;
 }

我知道上面写的代码不是一个可行的方法来实现我想要实现的目标,所以请建议我一个更好的方法谢谢

php mysql codeigniter
1个回答
0
投票

忘记逐行插入这么多数据,因为你已经发现它会非常慢。

使用load data infile将文本文件原样加载到临时表。登台表应该在公司名称列上有一个索引。然后使用带有连接的insert ... select ...将公司ID插入到最终表中。

© www.soinside.com 2019 - 2024. All rights reserved.