我有一个非常大的表,让我们调用它example
,然后我尝试在该表上执行一些更改命令:
ALTER TABLE `example` ADD `example_column` TINYINT(1) NOT NULL DEFAULT 0;
Run Code Online (Sandbox Code Playgroud)
检查alter命令的进度:
mysql -e 'show engine innodb status \G' | grep 'undo \| log \| entries'
Run Code Online (Sandbox Code Playgroud)
给我很好的信息,关于时间 - 或多或少需要 17 天才能完成......
更改阻塞表,因此阻塞生产表 17 天不是一个好的选择。;)
我尝试在网上调查一些很棒的工具,例如:
我还阅读了文档和上述工具的限制部分:
触发器的使用意味着如果表上已经定义了任何触发器,则该工具将无法工作。
不提供任何改变包含外键的表的好方法
我的示例表有触发器和外键...
你能给我一些建议,如何处理这个改变?
我有 MySQL 5.6。我使用 GTID(基于行)复制。
我将非常感谢您的建议!