关于MYSQL外键和孤立行的问题

时间:2011-03-29 12:05:06

标签: mysql database foreign-keys foreign-key-relationship

如果我在两个表之间添加一个外键,我可以在之后添加孤立行吗?此外,当我在两个表之间创建外键时,有没有办法创建它而忽略孤立行?

我的下一个问题是关于外键的效率。我一直认为他们在表中的一个键和另一个表中的相应键之间创建了一个索引,这在进行连接时基本上使它成为线性查找。

外键是否比使用索引更有效率或者它们是否相同?

感谢。

1 个答案:

答案 0 :(得分:1)

外键关系通常在一个表中的外键和另一个表中的主键之间。

主键隐式创建索引 不是外键。大多数情况下,最好在外键列上添加索引。

键是保证数据一致性的约束,可以使用索引提高数据的访问性能。因此,这些是您经常在实践中结合的不同事物,因此经常会混淆。

关于孤儿行,我认为密钥的概念是为了防止这种情况。但我不完全确定如果我完全明白你在这里问的是什么。我认为添加孤立行是不可能的,如果存在孤立行,则创建密钥听起来有点不可能。

另请参阅有关外键/索引主题的SO的其他questions 这里有一些与主键/键/索引相关的好answers