外键列上缺少索引会导致什么?

外键列上缺少索引会导致什么?(面试简答)

外键列上缺少索引会带来两个问题
1.限制并发性。
2.影响性能。
这两个问题都是很致命的

在使用mysql还是Oracle数据库的过程当中,大家不难发现,我们在创建外键的时候就会创建索引,这样在项目中进行数据添加的时候,如果主键中不存在该值,那么你是无法在外键当中添加数据的,达到了级联检测的作用,从而达到并发的效果,所以与增加一个索引所带来的性能开销和磁盘空间开销相比,确实索引可能引发的问题要严重得多。选择在所有的外键列上添加索引,虽然可能导致创建了部分多余的索引,但是这样相除了外键约束由于确实索引所带来的性能问题和并发性问题。

我的理解:
缺少外键对性能的影响
如果外键列上缺少索引,从主表(即被外键引用的那个表)关联子表(即建立外键所在的那个表)的查询就只能对子表选择全表扫描的查询。这就导致性能方面的下降。
缺少外键对并发的影响
缺少了外键索引后,主表删除或更新记录会导致子表整个表被锁或者是子表进行删除或更新记录会导致主表整个表被锁,而这都会导致严重的系统并发问题。

你觉得呢?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值