PHP MySQL“选择”然后“插入”大数据

时间:2015-11-12 12:31:49

标签: php mysql pdo innodb

Select然后Insert大数据导入数据库(InnoDB Engine)的最佳方法是什么?

我需要从另一个表中插入超过60000行而不会产生LIMIT结果。

有没有办法防止我的服务器内存消耗过多或加快查询速度?我可以用LIMIT 5000分解查询,直到复制完所有数据为止?

这是示例查询:

$query = 'SELECT * FROM orig_table WHERE user_id = 1 AND sent = 0'; // more than 60000 rows

if ( $query ) {
  foreach ( $query as $row ) {
     'INSERT INTO copy_table VALUE()';    
  }   
}

1 个答案:

答案 0 :(得分:1)

也许只需在一个查询中执行

insert into copytable (column1,column2)
SELECT column1,column2 FROM orig_table WHERE user_id = 1 AND sent = 0