2011-07-28 108 views
1

我創建外鍵到我的表中的一個字段,索引自動創建到該字段。爲什麼索引是自動創建到外鍵字段?爲什麼索引是自動創建到外鍵字段?

+0

相關http://stackoverflow.com/questions/304317/does-mysql-index-foreign-key-columns-automatically –

+0

因爲索引是爲充當外鍵的列自動創建的。檢查MySQL手冊。 –

+0

不是一個笨蛋,鏈接的問題問:MySQL是否在外鍵上放了一個索引(回答是),這個問題aks:爲什麼? – Johan

回答

0

外鍵字段鏈接到其他表中的字段內容。

如果我們創建一個像這樣的表:

Table Patient 
    id 
    name 
    address 

和一張桌子疾病

Table Illness 
    id 
    patient_id foreign key to patient.id 
    description 

MySQL的檢查,看是否有外地鏈路表patient實際上在Illness的ID相匹配。如果patient被刪除,它也會執行回調,它會檢查以確保它在illness中未被引用。 爲了做到這一點,它需要索引這些字段,否則它將不得不花費太多時間進行全表查找。

此外,字keyindex所以是有意義的索引鍵:-)的代名詞。

+0

k..Then如何創建外鍵沒有創建索引? –

+0

@Sunitha,這是不可能的,你爲什麼要做這樣的事情? – Johan

+0

因爲我不會創建索引到那個foriegn關鍵字段..所以這是要求... –

1

索引在外鍵上創建以提高性能。如果你有一個外鍵是想要獲取相關項目的常見信息,索引可以讓你快速獲取這些項目。此外,強加在外鍵上的條件(刪除,更新)利用索引快速工作。最後,您需要在創建外鍵時執行完整性檢查,這需要執行搜索,這些搜索利用索引。

相關問題