如何将包含表格选定列的1300万条记录插入另一个现有表格?

时间:2015-04-08 10:38:42

标签: mysql

我有两个表,一个是具有数据的主表,我想从另一个具有大约1300万条记录的现有表中插入数据。我正在使用查询从另一个表插入,即

insert into table1 ( column1, col2 ...) select col1, col2... from table2;

但是,遗憾的是,由于锁定等待超时错误1205,查询失败。

在没有超时的情况下,最短的时间内最好的方法是什么。

1 个答案:

答案 0 :(得分:0)

如果你在table2上有一个主键,那么你可以使用它来批量订购和插入:

insert into table1 ( column1, col2 ...)
    select col1, col2...
    from table2
    order by <primary key>
    limit 0, 100000

然后重复此操作以获取其他值。 (当然,100,000是任意的。更大的值可能有效。可能需要更小的值。)

另一种可能性是删除所有索引并从table1插入触发器,尝试不带它们的插入,然后在新数据出现在表格后再添加它们。