MySQL表将3000万条记录插入另一条记录中

时间:2011-11-04 21:38:37

标签: mysql sql

我有一个3000万条记录的mysql表。

有大约20列我将使用15列插入另一个表。

现在我无法使用PHP加载这个大型数据集(选择3000万行并加载到内存中是不可行的),加载所有这些记录的最佳方法是什么? MySQL 5.X

我正在使用EMS连接到数据库。

3 个答案:

答案 0 :(得分:3)

INSERT INTO MySmallerTable SELECT Col1, col2, col3... FROM MyBiggerTable

怎么样?

将其分成多个INSERT

可能是值得的

像:

INSERT INTO ... SELECT ... WHERE ID between 1 and 100000;

INSERT INTO ... SELECT ... WHERE ID between 100001 and 200000;

答案 1 :(得分:0)

你可以这样做

INSERT INTO new_table (`col1`,`col2`,`col3`) SELECT `oldcol1`,`oldcol2`,`oldcol3`
 FROM old_table LIMIT 0,100000

并通过php循环重复它(具有更改限制起始值)

答案 2 :(得分:0)

您可以通过几种方式包含上面提供的一个用户M_M。我没有使用EMS,也不确定它能做什么,不能做什么。但我已广泛使用Workbench。

一个。

  • 创建新目标表
  • 使用感兴趣的列在源表上创建视图
  • LInsert from source from source with simple INSERT INTO SOURCE_TABLE SELECT * FROM DESTINATION_TABLE

  • 使用mysqldump
  • 上传到新表
  • 通过删除不需要的列来改变表格