关于生产数据库的MySql ALTER TABLE - 有任何问题吗?

时间:2010-02-12 23:31:42

标签: mysql alter-table

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

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

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

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

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

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

如果知道任何值,我计划通过PHPMYADMIN发布命令。

谢谢 -

2 个答案:

答案 0 :(得分:5)

在应用任何换碟机之前先进行备份。有两种方法可以做到:mysqldump所有内容都可以复制你的mysql数据文件夹。

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

答案 1 :(得分:0)

这是我的建议。

  1. 您可以对应用进行故障转移。(确保所有dbs都没有连接)。

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

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

  4. 看起来桌子的尺寸很小,所以不会引起任何麻烦。