mysql - 在巨大的 MySQL 表上进行 INSERT ... SELECT

标签 mysql select insert bigdata

我隔离了 MySQL 5.5,里面有一个巨大的表(3.5Tb 的数据,是的,它只有 1 个表)。

目标是将该表的一半复制到同一服务器上的另一个表中。如何更好更快地做到这一点? :

1) 只需“INSERT INTO new_table SELECT * FROM old_table WHERE ...”。 在这种情况下 MySQL 会有何行为?我预计与 MySQL 的连接会因超时而中断,但是查询本身应该运行,直到复制所有数据。 或者MySQL会因这样的查询而崩溃?

2) 使用相同的“INSERT ... SELECT”,但按 block 选择(例如按 10000 行)。我想这绝对应该更安全,但速度要慢得多。

最好的方法是什么?预先感谢您!

最佳答案

我使用过 CREATE TABLE AS,看看这是否也可以帮助您:

CREATE TABLE ... SELECT Syntax

关于mysql - 在巨大的 MySQL 表上进行 INSERT ... SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39896964/

相关文章:

php - 使用许多一对多关系(ORM)减少MySQL中的查询

mysql - 如何获得mysql中两个表之间的比较差异列值

c# - 使用 C# (OleDB) 插入带有自动增量主键的新数据行

mysql - 克服多余的行

php - Mysql INSERT IGNORE INTO 仅忽略一列

php - 如何打印将在 laravel 5.1 中执行的更新查询

mysql - 选择没有 FROM 但有多行

jquery mobile 选择的选项未在 'refresh' 上更新

php - 如何获取包含搜索项的数据

MySQL更新前触发