没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
【强制】不得使�外键与级联,�切外键概念必须在应�层解决。
说明:以学�和成绩的关系为例,学�表中的 student_id 是主键,那么成绩表中的 student_id 则为外键。如果更新学�表中的
student_id,同时触发成绩表中的 student_id 更新,即为级联更新。外键与级联更新适�于单机低并发,不适合分布式、�并发集
群;级联更新是强阻塞,存在数据库更新⻛暴的⻛ 险;外键影响数据库的插�速度
大厂面试官最喜欢问的面试难点
— 平常经常使
用
外键和外键和级联吗,可以说说你对它们的理解吗?
对于外键和级联,阿里巴巴开发手册这样说到:
为什么不要用外键呢?大部分人可能会这样回答:
增加了复杂性: a.每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,测试数据极为不方便;b.外键
的主从关系是定的,假如那天需求有变化,数据库中的这个字段根本不需要和其他表有关联的话就会增加很多麻烦。
增加了额外
工
作:数据库需要增加维护外键的工作,比如当我们做一些涉及外键字段的增,删,更新操作之后,需要触发相
关操作去检查,保证数据的的一致性和正确性,这样会不得不消耗资源;(个人觉得这个不是不用外键的原因,因为即使你不
使用外键,你在应用层面也还是要保证的。所以,我觉得这个影响可以忽略不计。)
外键还会因为需要请求对其他表内部加锁而容易出现死锁情况;
对分不分表不友好 :因为分库分表下外键是无法生效的。
......
我个人觉得上面这种回答不是特别的全面,只是说了外键存在的一个常见的问题。实际上,我们知道外键也是有很多好处的,比如:
1.
保证了数据库数据的一致性和完整性;
2.
级联操作方便,减轻了程序代码量;
3.
......
所以说,不要一股脑的就抛弃了外键这个概念,既然它存在就有它存在的道理,如果系统不涉及分不分表,并发量不是很高的情况
还是可以考虑使用外键的。
我个人是不太喜欢外键约束,比较喜欢在应用层去进行相关操作。
资源评论
小小哭包
- 粉丝: 1904
- 资源: 3909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功