2
我想从表中删除外键约束,这需要很长时间,我不知道在生产环境中执行此操作时会发生什么样的坏事。MySQL:在InnoDB表上删除外键约束
ALTER TABLE table DROP FOREIGN KEY fk_my_foreign_key;
- 为何需要那么久吗?
- 我可以加快速度吗?
- 是否安全地中断中间的过程?
- 在生产服务器上运行这样的操作是否有任何副作用?
- 当alter table失败(丢失与服务器的连接)时是否存在任何一致性问题?在这种情况下,如果无法使用其他配置(最大数据包大小)重新启动服务器,该怎么办?根据要求
的更多信息:
- MySQL服务器版本:34年5月5日
- 外键引用在同一个表
- 表中列有行的8000万左右
- 关键+表上的约束,ON UPDATE CASCADE ON DELETE CASCADE
在大多数情况下,ALTER TABLE通过创建 原始表的临时副本来工作。对副本执行更改,然后删除原始表,并重新命名新表。当ALTER TABLE正在执行时,原始表可由其他会话读取。 对表进行更新和写入操作会停止,直到新表准备好 ,然后自动重定向到新表,而不会有 任何失败的更新。谢谢。
其他情况呢?我可以防止这种锁吗?
您需要添加更多关于您的环境的数据。首先服务器版本,那么你的表格是多少,它们有多大。 –
编辑,谢谢 – Aki
确实更新/删除级联 – Aki