我有一张表分布在运行MySql 4的两台服务器上。我需要将这些表合并到用于测试环境的一台服务器中。
这些表每个字面上都有数百万条记录,它们之所以位于两台服务器上是因为它们有多大。表的任何更改和分页都会给我们带来巨大的性能影响。
因为它们在生产环境中,所以我无法在其现有服务器上以任何方式对其进行更改。
问题在于主键是唯一的自动递增字段,因此存在交集。
我一直在尝试找出如何使用mysqldump命令忽略某些字段的方法,但是--disable-keys只会更改表,而不是完全摆脱键。
在这一点上,我似乎需要修改数据库结构,以将校验和或哈希作为主键的使用,这是实际上应该是唯一的两个唯一字段的组合...我真的不想做这个。
救命!
最佳答案
如果您不在乎auto_increment列的值,则只需加载第一个文件,重命名表,然后重新创建表并加载第二个文件。最后,使用
INSERT newly_created_table_name (all, columns, except, the, auto_increment, column)
SELECT all, columns, except, the, auto_increment, column
FROM renamed_table_name