数据库在使用中是否能删除外键?
RT,现有一套正在运行的JavaWeb程序与MySQL数据库,目前一共40多张表,560多万条记录,大约每天产生一万条左右。
目前做了业务范围升级,也考虑做MySQL Cluster,但因为MySQL Cluster的ndbcluster引擎不支持外键,所以打算本次把原先的外键先删除,然后备库还原到集群中,最后做新数据表添加。
在本地测试了一下,删除六个表的外键,耗费了近2个小时(备份不到20分钟,还原近一个半小时)。
因业务比较关键,发生频率较高,时间也不确定,所以想尽量减少服务停机时间,能否在不停止程序服务的情况下,数据库发生读写操作时删除外键?
因为没做过这样的事情,有点担心安全问题。
目前做了业务范围升级,也考虑做MySQL Cluster,但因为MySQL Cluster的ndbcluster引擎不支持外键,所以打算本次把原先的外键先删除,然后备库还原到集群中,最后做新数据表添加。
在本地测试了一下,删除六个表的外键,耗费了近2个小时(备份不到20分钟,还原近一个半小时)。
因业务比较关键,发生频率较高,时间也不确定,所以想尽量减少服务停机时间,能否在不停止程序服务的情况下,数据库发生读写操作时删除外键?
因为没做过这样的事情,有点担心安全问题。
...全文
相关推荐
快速理解MySQL中主键与外键的实例教程
例如在论坛的场景中,`reply` 表的 `thread_id` 字段是外键,它引用了 `thread` 表的 `id` 主键,这样当尝试删除一个帖子(主键记录)时,如果设置了外键约束,MySQL会自动检查该帖子是否有相关的回帖
数据库技术与应用 foreign key-D.doc
如是否允许NULL值,以及在主键变化时外键如何响应。3. 外键对性能的影响是什么?虽然外键能保证数据一致性,但过多的外键可能导致查询效率降低,因此在设计时需要权衡。
数据库外键的设置与使用
因此,正确理解和使用外键对于创建高效、可靠的数据库系统是必不可少的。
MySQL使用外键实现级联删除与更新的方法
在MySQL中,外键是用来维护两个表之间关系的重要机制,特别是在复杂的数据库设计中。外键约束确保了数据的一致性和完整性。本篇文章将详细讲解如何使用外键在MySQL中实现级联删除和更新。
MySQL删除有外键约束的表数据方法介绍
解决这个问题的一种方法是临时禁用外键检查。使用SQL命令`SET FOREIGN_KEY_CHECKS = 0;`可以关闭外键约束,允许你执行删除操作。


