首页 新闻 会员 周边

数据库主外键关系对性能到底有多大影响???

0
[已解决问题] 解决于 2010-08-12 14:19

看到很多公司的数据库中,都把主外键关系删除了.
当然肯定是在网上看到了一些优化的文章,
但是我想知道,加上主外键的关系后,对性能的影响究竟有多大呢?
最好来点自身的真实数据,
本人觉得这样有点得不偿失,通过程序维护数据库的完整性,更恶心.
达人指点一下.

蝗虫的大腿的主页 蝗虫的大腿 | 初学一级 | 园豆:22
提问于:2010-08-11 15:17
< >
分享
最佳答案
0

我个人认为相比较而言数据的完整性和性能相比,数据的完整性更加重要。

同时如果在程序中来维护数据的完整性消耗的性能应该更大吧,而且一个大型系统表和表之间的关联式很复杂的,程序开发的过程中有时会忘记处理这块,如果没处理那就会导致数据的丢失了。

如果大批量的数据增加或删除可能会有性能损失。

我个人是比较偏向于主外键关系的

kyo-yo | 大侠五级 |园豆:5587 | 2010-08-11 15:28
对!
killkill | 园豆:1192 (小虾三级) | 2010-08-11 22:19
其他回答(4)
0

我通常也不会建立主外键关系,觉得交给数据库来做不太符合业务逻辑上的事,所以都是在代码中做。

Astar | 园豆:40805 (高人七级) | 2010-08-11 16:34
主外键是唯一保证数据安全的有效方法,靠代码来维护是不可取的。
支持(0) 反对(0) killkill | 园豆:1192 (小虾三级) | 2010-08-11 22:20
@killkill:一般大家都会在数据库做主外键,这是所谓的规定,这个问题也讨论过。各有所需。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-11 22:39

不是说主外键的限制就是业务逻辑。而是,数据库的设计本来就应当是基于业务逻辑。

相对复杂系统想做到在代码中做好所有的控制,这样遗漏出错的可能性还是相当大。

支持(0) 反对(1) Greatcqi | 园豆:175 (初学一级) | 2013-11-04 18:14
0

当需要靠删除主外键来获得性能时,就是设计上的问题。

killkill | 园豆:1192 (小虾三级) | 2010-08-11 22:19
0

我是不设置外键的,在业务去控制就好了

魏琼东 | 园豆:72 (初学一级) | 2010-08-12 04:07
0

搞过大数据量的就知道外键是怎样一种噩梦了。小数据量随便吧。企业级开发一般需要,web开发一般不要。

redspear | 园豆:165 (初学一级) | 2011-12-09 17:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册