2011-03-29 30 views
0

如果我在兩個表之間添加一個外鍵,我可以在之後添加孤行嗎?另外,當我在兩個表之間創建外鍵時,是否有任何方法來創建它,而忽略孤行行?關於MYSQL外鍵和孤行的問題

我的下一個問題是關於外鍵的效率。我一直認爲他們在一個表中的一個鍵和另一個表中的相應鍵之間創建了一個索引,在進行聯接時本質上使其成爲線性查找。

是一個外鍵更高效,然後只是有一個索引或它們是否相同?

謝謝。

+0

有沒有孩子沒有父母和索引和外鍵都是爲了不同的目的 – 2011-03-29 12:07:56

回答

1

外鍵關係通常在一個表中的外鍵與另一個表中的主鍵之間。

主鍵做隱式創建索引。
不是外鍵。大多數情況下,最好在外鍵列上添加索引。

密鑰是保證數據一致性的約束,可以使用索引提高數據的訪問性能。所以這些是你經常在實踐中結合的不同的東西,因此經常被混淆。

關於孤行我認爲鍵的概念是爲了防止這種情況。但我不完全確定如果我明白你在這裏問的到底是什麼。我認爲添加孤立行是不可能的,並且如果孤立行存在則創建密鑰聽起來是不可能的。

另請參閱其他questions關於SO處理外鍵/索引主題。
這裏有一些更好的answers與主鍵/鍵/索引有關