看到很多公司的数据库中,都把主外键关系删除了.
当然肯定是在网上看到了一些优化的文章,
但是我想知道,加上主外键的关系后,对性能的影响究竟有多大呢?
最好来点自身的真实数据,
本人觉得这样有点得不偿失,通过程序维护数据库的完整性,更恶心.
达人指点一下.
我个人认为相比较而言数据的完整性和性能相比,数据的完整性更加重要。
同时如果在程序中来维护数据的完整性消耗的性能应该更大吧,而且一个大型系统表和表之间的关联式很复杂的,程序开发的过程中有时会忘记处理这块,如果没处理那就会导致数据的丢失了。
如果大批量的数据增加或删除可能会有性能损失。
我个人是比较偏向于主外键关系的
我通常也不会建立主外键关系,觉得交给数据库来做不太符合业务逻辑上的事,所以都是在代码中做。
不是说主外键的限制就是业务逻辑。而是,数据库的设计本来就应当是基于业务逻辑。
相对复杂系统想做到在代码中做好所有的控制,这样遗漏出错的可能性还是相当大。
当需要靠删除主外键来获得性能时,就是设计上的问题。
我是不设置外键的,在业务去控制就好了
搞过大数据量的就知道外键是怎样一种噩梦了。小数据量随便吧。企业级开发一般需要,web开发一般不要。