Postgresql外键约束级联删除时容易忽略的问题

外键约束用来实现表与表之间的参照完整性(referential integrity)。
外键约束是指一个引用表(referencing table)中的一个或多个引用字段(referencing column)必须与另一个被引用表(referenced table)中相应的被引用字段(referenced column)匹配,而且类型和值都必须匹配。
被引用表(referenced table)中的被引用列(referenced column)必须是一个非延迟的唯一约(unique key)束或者主键约束(primary key)。

外键约束可以设置级联删除。
设表B的字段y引用了表A的字段x(primary key or unique constraint),并设置了级联删除。当表A的某条记录删除时(x=x0),表B的某条记录(如果存在)也要被删除。
容易出现的问题:如果表B的字段y上没有建索引,删除表B记录时就会使用顺序扫描(Seq Scan)。当表B记录条数较多时顺序扫描会消耗较长时间。
解决方法:
表B的字段y增加索引。

你可能感兴趣的:(Postgresql外键约束级联删除时容易忽略的问题)