【问题标题】:MySql - transfer a lot of records from one table to the otherMySql - 将大量记录从一张表传输到另一张表
【发布时间】:2011-11-22 19:14:22
【问题描述】:

我有一个大表(约 50M 记录),我想将记录从该表传递到具有相同结构的另一个表(新表有一个额外的索引)。

我正在使用INSERT IGNORE INTO... 传递记录。

最快的方法是什么?是通过小块(比如说 1M 条记录)还是更大的块?

有什么办法可以加快这个过程吗?

【问题讨论】:

  • 在插入操作期间关闭目标表上的索引,然后重新启用/重建它们。
  • 如果您使用 Where,idexes(在源表上)可能会有所帮助。目标表上的索引可能会减慢进程(因为在每次插入 engie 重新计算索引之后)。
  • 我使用源表上的索引,我需要目标表上的索引

标签: mysql mysql-management


【解决方案1】:

在执行插入之前,禁用目标表上的索引 (DISABLE KEYS)(如果可以的话):

参考可以找到:Here

另外,如果您不使用交易/关系,可以考虑切换到 MyIsam 引擎。

【讨论】:

  • 并添加/删除索引会强制更改表,这在我的情况下会花费很多时间
猜你喜欢
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多