首页 / 知科普 / 正文

数据库设计不推荐使用外键

时间:2025-01-16 02:00:44

数据设计可以不要的7个理由

既然外键有那么多好处,为什么这里说设计数据库的时候可以不要外键呢,想作死嘛?但是世事无绝对的,这个世界也不是非黑即白的,很多时候人生只能随波逐流,跟着环境改变。意思就是说,数据库设计还是要根据实际情况,其实有7个理由可以说明为什么数据库可以没有外键。

1.提高性能。在表上拥有活动的外键可以提高数据的质量,但是会影响插入、更新和删除操作的性能。因为在这些操作任务之前,数据库需要检查它是否违反数据完整性。这就是为什么一些架构师和DBA完全放弃外键的原因。数据仓库和分析数据库尤其如此,这些数据仓库和分析数据库不以业务方法(一次一行)处理数据,而是批量处理数据。性能是数据仓库和商业智能的一切。

2.方便旧数据的导入。许多数据库在设计的时候需要考虑导入来自旧数据库的数据的因素。这些数据可能对数据的质量和完整性没有那么严格,为了能够容纳旧的脏数据,架构师有两个选择,一是清理和转换旧的历史遗留数据(昂贵代价,需要人工去编制数据);二是放弃在数据库级别上强制执行参照完整性。哪个方法更好更节约成本更高效,我相信已经不言而喻了。

3.方便全表的重新加载。一些数据库,如数据仓库,分段或接口数据库,需要经常从外部重新加载数据。就像你本地的测试数据库需要从生产环境的正式数据库重新加载数据一样。这可能会导致重新加载数据时数据不一致(在父表为空的情况下,子表可能已经装满)。虽然可以通过在重新加载数据的时候禁用外键来绕过这个问题,然而这却引入了额外的逻辑和复杂性,以及另一个失败点,对性能有负面影响。

《数据库设计不推荐使用外键》不代表本网站观点,如有侵权请联系我们删除

科技在线 广州云媒派信息技术有限公司 版权所有 粤ICP备2021127029号