Mysql:合理预测添加列或索引的持续时间

Mysql:合理预测添加列或索引的持续时间,mysql,performance,alter-table,Mysql,Performance,Alter Table,我知道这个问题不是我能得到准确答案的问题。我要找大概的数字 我基本上需要一种方法来回答这个问题:当我添加这个列或索引时,它会将表锁定1分钟、10分钟还是1小时+。原因是,我们需要知道,这是一项实施,是要求我们通知客户服务中断,还是我们可以在非高峰时间这样做 我意识到这类问题涉及很多因素,但我想重点关注那些不明显的因素,如机器性能、当前系统负载等 理想情况下是某种形式的,如: (行数)*(0.01秒)*(一些未知因素)=112秒 另外,添加索引和列之间是否存在实质性差异? 添加的不同类型的列如何

我知道这个问题不是我能得到准确答案的问题。我要找大概的数字

我基本上需要一种方法来回答这个问题:当我添加这个列或索引时,它会将表锁定1分钟、10分钟还是1小时+。原因是,我们需要知道,这是一项实施,是要求我们通知客户服务中断,还是我们可以在非高峰时间这样做

我意识到这类问题涉及很多因素,但我想重点关注那些不明显的因素,如机器性能、当前系统负载等

理想情况下是某种形式的,如:

(行数)*(0.01秒)*(一些未知因素)=112秒

另外,添加索引和列之间是否存在实质性差异? 添加的不同类型的列如何


换一种方式来说,决定alter语句是慢还是非常慢的最大因素是什么?

这里最好的方法是在具有相同数据集的类似硬件上创建数据库的暂存副本,最好是通过夜间备份生成


然后,您可以毫无恐惧地尝试模式修改,并大致了解需要多长时间。当然,负载下的数据库将比不负载的数据库花费更长的时间。要考虑到这一点,您可以对运行常见应用程序操作的临时数据库运行一些负载测试脚本,同时尝试模式更改。

我认为您是对的。如果没有mysql开发人员,就很难得到一个好的公式,这仍然是一个很好的解决方案。当然,这是更多的工作,但总比没有好