登录
首页 >  Golang >  Go问答

据说有的项目为了高并发,数据表禁止使用外键,这种情况有吗?

来源:SegmentFault

时间:2023-01-07 18:47:53 462浏览 收藏

本篇文章向大家介绍《据说有的项目为了高并发,数据表禁止使用外键,这种情况有吗?》,主要包括Java、go、PHP、python、后端,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

如题,如果有,具体是什么场景,没有外键,相关实体数据的一致性是如何保障的?

正确答案

有,而且非常常见。

就不谈分库分表这种“极端”情况了 ———— 分库分表肯定是没有了的。即便是不分库分表,为了便于日后扩展,也往往不用了。

注意这里并不是真的就不用外键了,而是禁止的“物理外键”,即依赖数据库本身提供的外键特性实现的。但从业务逻辑上讲其实还是有外键的。

一致性靠业务层实现,而非交给数据库。

比如常见的一种场景是“主表数据删除了、关联数据表里相应的记录也要删除”,靠物理外键很好解决,设置个级联删除咯;靠业务层实现就是自己分别到各个表里执行删除操作了。同样的,外键约束、级联更新等操作也是如此。

P.S. 很多场景下有“最终一致性”就足够了,不要求一定要有“强一致性”。

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《据说有的项目为了高并发,数据表禁止使用外键,这种情况有吗?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>