12

我有大约 100 个数据库(所有相同的结构,只是在不同的服务器上),每个数据库大约有十几个表。大多数表都很小(比如说 100MB 或更少)。偶尔会出现表格可能很大的边缘情况(比如说 4GB+)。

我需要在每个数据库中的几乎每个表上运行一系列 ALTER TABLE 命令。主要是向结构中添加一些行,但也有一些变化,例如将行从 varchar 更改为 tinytext(反之亦然)。还添加了一些新索引(但索引新行,而不是现有行,所以假设这没什么大不了的)。

我想知道这样做有多安全,以及此过程是否有任何最佳实践。

首先,我是否有可能损坏或删除表中的数据。我怀疑不是,但需要确定。

其次,我假设对于较大的表(4GB+),这可能是几分钟到几个小时的过程?

关于在我有兴趣学习的生产数据库上执行 ALTER TABLE 命令,我应该知道的任何事情。

如果知道它有什么价值,我计划在很大程度上通过 PHPMYADMIN 发出命令。

谢谢 -

4

2 回答 2

5

首先,在应用任何更改程序之前,请进行备份。有两种方法可以做到这一点: mysqldump一切,或者你可以复制你的 mysql 数据文件夹。

其次,您可能希望mysql从命令行使用。PHPMyAdmin 可能会超时。大多数 PHP 服务器的超时时间少于 10 分钟。或者你不小心关闭了浏览器。

于 2010-02-12T23:44:32.003 回答
0

这是我的建议。

  1. 您可以对应用程序进行故障转移。(确保所有数据库上没有连接)。

  2. 您可以使用“创建索引语句”来创建索引。不要使用 alter table add index 语句。

  3. 使用类似脚本执行这些操作(将所有这些语句保存在文件中并从源代码运行)。

  4. 看起来桌子尺寸很小,所以不会让人头疼。

于 2013-02-06T15:53:05.507 回答