社区
疑难问题
帖子详情
数据库外键的使用以及优缺点
qytomorrow
2016-06-14 09:34:33
现在在开发的一个系统,数据库设计之时没有考虑太多的性能问题,设置了很多外键。
看网上很多资料表示,设置外键在进行增删改操作的时候,会出现表与表之间的耦合,所以很多时候系统内存会升到好几个G。
外键到底应不应该使用,或者在什么情况下可以使用在什么情况下不建议使用。
...全文
3054
9
打赏
收藏
数据库外键的使用以及优缺点
现在在开发的一个系统,数据库设计之时没有考虑太多的性能问题,设置了很多外键。 看网上很多资料表示,设置外键在进行增删改操作的时候,会出现表与表之间的耦合,所以很多时候系统内存会升到好几个G。 外键到底应不应该使用,或者在什么情况下可以使用在什么情况下不建议使用。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
转身@未来
2016-06-14
打赏
举报
回复
我个人觉得数据库表外键使用是很有用的,首先保证了数据的完整性,但是最重要的是要合理的使用外键,过多的使用外键虽然增加了查询效率,降低了插入、更新,删除的效率。创建外键之前首先要考虑到该表以后读写情况,然后合理的创建外键。
kingtiy
2016-06-14
打赏
举报
回复
说两点吧. 外键,主要保证了数据完整性.建议是使用的. 但如果大量导数据,或者删除数据的时候,建议先禁用外键约束,等维护完成,再启用约束.
中国风
2016-06-14
打赏
举报
回复
如果是用外健的no action 选项,检查影响是一定,花销成本可以忽略不计,不会出现什么并发之类的 并发只会用到级联的更新和删除时会可以会存在,事务要尽量控制代码短,花销时间少
zbdzjx
2016-06-14
打赏
举报
回复
个人感觉:外键会影响性能,但是,很小,除非数据量很大,并发量很大,才可能有明显的影响。不然,外键的优点要明显高于缺点。
misterliwei
2016-06-14
打赏
举报
回复
使用外键主要是让SQL SERVER数据库系统来自动保证数据的完整性;缺点是对主表和从表的增删改性能会有影响。 可以通过事务来人工实现数据的完整性,但是需要做大量的测试,就怕万一有遗漏的情况。
中国风
2016-06-14
打赏
举报
回复
除非你的外健用了级联更新或删除时会有影响
中国风
2016-06-14
打赏
举报
回复
外健是数据库为了数据的完整性,安全防护,你的内存升得快同这个没关,估计是设计出了问题 比如:用到复合主健(2列以上建的主健),引用时被其它表引用 系统设计时会用到XML或表类型作为接口参数时,最好别用外健不便于维护,把约束交给程序去处理
卖水果的net
2016-06-14
打赏
举报
回复
使用外键的好处多多:1保证数据的完整性,2.关联查询时,可以用到FK 的统计信息 不使用外键的好处多多:1.删队或更新关联数据时不用做检查,效率会大符提高,2.手工调数据时,比较方便(一般不建议) 这个一定要权衡,权衡,权衡!
薛定谔的DBA
2016-06-14
打赏
举报
回复
外键虽然保证完整性,但是对于主表删除这种操作,都级联扫描一遍所有的子表取删除,数据越大越慢,锁粒度也会大。维护也麻烦,对于手动增删数据的维护,导入导出,其它高可用等,太麻烦。 还是用程序修改用事务来保证吧!~
数据库
外键
使用
优缺点
摘录网上讨论共同观点: 主键和索引是不可少的,不仅可以优化数据检索速度,开发人员还省不其它的工作, 矛盾焦点:
数据库
设计是否需要
外键
。这里有两个问题:一个是如何保证
数据库
数据的完整性和一致性;二是第一条对性能的影响。 观点一: 1,由
数据库
自身保证数据一致性,完整性,更可靠,因为程序很难100%保证数据的完整性,而用
外键
即使在
数据库
服务器当机或者出现其他问题的时候,也能够最大限度的
疑难问题
22,296
社区成员
121,728
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章