Mysql中具有相同列名的表之间的数据复制

Posted

技术标签:

【中文标题】Mysql中具有相同列名的表之间的数据复制【英文标题】:Data replication between tables with same column names in Mysql 【发布时间】:2015-10-17 13:41:37 【问题描述】:

我们有一个包含 7000 万用户记录的主表,其中包含过去 1 年的所有用户,无论他们是过期用户还是活跃用户。

这个表的性能太慢了,所以我们想用更好的索引和更好的数据类型分配重新创建这个表,并将主表中的所有记录插入到这个新表中。

主表每分钟都会更新/插入,因为它非常动态。

在不遗漏任何用户的情况下,我需要将主表中的所有记录(7000 万条)插入到新表中。

最好的方法是什么?异步插入 7000 万条记录需要多长时间。

是否有可用的数据复制?

是否有任何建议我为此提供最佳解决方案,我需要更快地更新新表。

【问题讨论】:

SQL Server 还是 mysql this 似乎相关。您需要创建一个从属设备来实现它。 【参考方案1】:

从 select 中插入一个简单的插入不能解决您的问题吗?

LOCK TABLES `oldtable` WRITE;
INSERT INTO `newtable` SELECT * FROM `oldtable`;
UNLOCK TABLES;

【讨论】:

这将阻塞应用程序一段时间,并且复制后的任何更改都无法同步。 @Vatev,是的,这里无法同步数据。请任何人给我一个解决方案,因为我的桌子每天都在变大。

以上是关于Mysql中具有相同列名的表之间的数据复制的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL 和 Sqlalchemy 查询的表具有相同的列名

如何从 CodeIgniter 中具有相同列名的表中输出数据?

mysql把一个数据库中的数据复制到另一个数据库中的表 2个表结构相同

选择具有不同列名的表

mysql如何复制数据到同一张表?

来自具有相同列名的两个表的数据