向 table 添加外键会影响其插入时间吗?

Does adding a foreign key to a table affect its insertion time?

是假设每个外键添加一个到table也会添加一个CHECK约束,确保插入外键列的值来自table 其中该键是主键。

这意味着具有更多外键的 table 将需要更长的时间来插入值。这是正确的吗?

我正在使用 Microsoft SQL Server 2014。

是的。在 table.

中插入或修改数据时检查外键关系

外键必须是主键或唯一键。这保证了索引可用于检查。

一般来说,在索引中查找值应该是相当快的。比插入中发生的其他事情更快,例如为数据查找空闲页面和记录数据。

但是,验证外键会增加一些开销。

不要混淆外键和检查 - 有两种不同的约束类型。例如检查接受空值和外键不接受(例外:删除时设置空 fk 选项)。

当数据库中的行 inserted/updated 时,正在执行 od 步骤,例如检查 table 的存在,列,veryfing 权限。你有 fk 数据库引擎必须在 inserting/updateing 数据到 table 之前验证约束 - 这是执行的额外步骤。

我从未遇到过这种情况,当 fk 痛苦地减慢数据库操作持续时间时。