在我的应用程序中,"ON“场景从未发生过。由于使用了软删除,"ON DELETE“级联和限制场景现在也不会发生。那么,当应用程序处于高并发工作负载下时,我是否应该丢弃外键,因为我遇到了死锁问题。
顺便说一句:如果子资源在创建子资源时有引用(外键),我的应用程序也会验证父资源的存在。
发布于 2014-08-06 21:22:54
留着吧。外键的存在主要是为了确保子表中的值确实存在于父表(外键)中。级联删除或更新通常是一个遥远的秒。
这是一般情况;您的具体业务规则可能有所不同。
发布于 2014-08-06 19:12:54
我有一个旧的帖子数据库同步和软删除场景中的墓碑表和已删除标志。在那篇文章中,我没有在我的例子中使用外键约束。
软删除要快得多。只需在WHERE子句中集成墓碑表或AND deleted=0的联接即可。
根据这些情况,如果外键引用确实会导致死锁问题,并且在应用程序级别执行约束检查,则可能没有外键引用。
https://dba.stackexchange.com/questions/73340
复制相似问题