mysql - 在数据库之间移动表

标签 mysql database database-design refactoring refactoring-databases

为了稍微清理一下,我在 MySQL 数据库(不同的硬件)之间移动了 25 个表。这不是整个数据库,只是几百个表中的 25 个...这些表并不真正属于那里,出于保密协议(protocol)的原因,我不会深入探讨原因。

现在,这将破坏大量代码和 sql 查询。

执行此操作的最佳方法是什么?

  1. 一次把它们全部移过来。

  2. 将它们逐一移动

--

一次将它们全部移动过来,感觉不错。可能是我错过了一些中断和损坏的代码,但将它们作为一个 block 移动要快得多,推出代码所花费的时间也更少。

将它们一个一个地移动是一种不错的方式,大东西破坏的可能性较小,但是会花费更多的时间来微观管理工作、冗余工作和部署。

我可以暂时在两个数据库之间镜像表吗?也许是联合表?

--

杂项信息:有 25 个表都按内容相互关联。

我不能一次关闭数据库几个小时,大约 5 分钟的停机时间是可以接受的。

--

移动所有这些数据并保持代码、sql 和我的良好状态的最佳方法是什么?

我能否将表联合起来作为将表复制到新数据库的一种方式?

-丹尼尔

最佳答案

似乎一次将它们移到一个上面是可行的方法。这样你就有了一堆简单的小问题,而不是一个大的难题。我希望您的系统经过大量自动化测试,以确保所有这些改组不会破坏任何东西。

另一件事:你谈到关闭数据库。如果您在开发环境中进行更改,并且只有在您确定一切正常时才使更改生效,那么为什么您需要在生产环境中停机?我希望您不要考虑在生产中进行这些更改,而不先在开发中进行。

关于mysql - 在数据库之间移动表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3893867/

相关文章:

php - 征信系统如何防范欺诈?

mysql - 交响乐/MySQL : full text search syntax error for special chars

database - 将 Yii2 登录表单连接到数据库

MySQL - 2 路查询检查

c# - Entity Framework 如何处理大量记录?

database-design - 在数据库中存储每月数据的最佳方法?

php - 带有选择的下拉列表

java - 如何在 Java 运行时使用 Spring 执行原生 SQL 查询?

MySQL:数据库名称作为 View 中的参数

database - 图和超图数据库之间的区别?