我需要向当前表格添加一列。
这张表格在白天和黑夜都被频繁使用。我发现我需要使用此处找到的 alter 命令进行修改。
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
我在开发服务器上进行了测试。
用了大约2小时才完成。现在我想在生产服务器上执行这个操作?
这会停止我的网站吗?
为什么不在网站上显示一条消息,告知你将于2012年1月7日UTC时间午夜进行维护。
这样一来,你就不会丢失任何数据,也不会收到mysql错误。你可以执行ALTER操作,并在完成后重新启动网站(别忘了代码以确保你拥有正确的字段等)。简单明了的解决方案。
stackoverflow做到了,为什么你不能呢?
是的,在ALTER TABLE期间,所有的读写操作都会被阻塞。如果您的网站需要使用该表,请求将会挂起。
尝试使用pt-online-schema-change。它允许读写操作继续进行,同时捕获对修改后的表进行重放的更改。
请在开发服务器上仔细测试,以便了解其工作原理和预期结果。
它不会停止您的网站,但很可能会导致它抛出错误。
当然,没有办法在不查看应用程序所有代码的情况下回答这个问题。
总之,如果有疑问,请安排一个维护窗口。
P.S:根据我的经验,我认为这是更安全、更可靠的方式。