关于数据库外键的思考

最近被问了这么一个问题,父表A,字表B,B设置外键跟不设置外键有什么影响?

首先明白外键是主表的主键,默认建立了主键索引,如果子表B不设外键的字段有索引,explain一下查询语句可发现,对查询几乎没什么影响。

加外键前:


加外键后:


查询上是没有多大的区别,但是在修改删除上就有影响了,外键保证了数据的完整性。

但是目前很多公司包括我所在的公司都不会去使用外键,究其原因我认为是,设置了外键就定死了茶如数据的先后顺序,子表中插入数据必须判断外键,大大影响数据库的性能,维护起来也比较麻烦,而且很多代码逻辑就可以判断无需通过主外键判断。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值