外键对删除数据的影响

这几天一直在做生产系统数据库垃圾数据的删除,主表数据量有两个多亿,各种关联关系确定要删除的表有20个。列下碰到的问题和我的解决方法。
1. 外键对删除数据的影响
有两个表A和B。A中字段有id column1,B中有字段id,key,val,B表中val 是A表id的外键,A表主键id,B表主键id,key。这样建表似乎没什么问题,挺合适的。
但是当我们删除A表中一条数据时数据库会先去check B表有没有数据引用A表,如果没有那么删除,如果有给出外键约束。我们知道,如果表中数据达到一定数量级的时候在没有索引查询一条数据要做全表扫描,这是很耗时的,我的测试结果是已没有索引的列为条件时在2亿数据量的表中查询一条数据大概在12秒左右。加上索引的话快了不知道多少倍,所以当我们建表的时候如果有主外键关系,请给外键的地方加上索引吧,也就是这里B表的val。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值