mysql-外键约束、内连接(INNER JOIN)、外连接(OUTER JOIN)

84 阅读1分钟

外键

两表建立了关联关系 删除某项数据的时候 另一张表的某条数据也要相应删除才行 提升了系统的可靠性

假设我们有 2 个表,分别是表 A 和表 B,它们通过一个公共字段“id”发生关联关系,我们把这个关联关系叫做 R。

如果“id”在表 A 中是主键,那么,表 A 就是这个关系 R 中的主表。

相应的,表 B 就是这个关系中的从表,表 B 中的“id”,就是表 B 用来引用表 A 中数据的,叫外键。

所以,外键就是从表中用来引用主表中数据的那个公共字段

image.png

外键与级联更新适用于单机低并发,不适合分布式、高并发集群;

级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度

连接

内连接INNER JOIN)

取两表的交集部分

左连接

取左表全部数据 右表 获取符合条件的部分数据

右连接

取右表全部数据 左边 获取符合条件的部分数据

总结 在低并发的数据库系统里 外键关系可以确保数据的可靠性 在高并发的场景 根据阿里规约 不应该使用外键 而应在业务场景确保逻辑的一致 不存在绝对的好坏 一切都要根据场景来决定到底用不用