2013-02-26 101 views
1

如果我有表裏面Fooa,我創建一個新表Bar與列b這是一個外鍵Foo.a,自動編入索引的Barb,或必須我還是當我在Bar.b創建索引想要高效搜索Bar中的所有行與b = 1創建外鍵是否意味着創建索引?

(如果有問題,我正在使用SQLite。)

回答

1

您必須自己創建索引。至少我知道沒有自動執行它的DBMS。

+1

我誤解了這個問題。我以爲他在問是否會在FK的目標上創建一個索引。 :)(或者現在我再讀一次,也許我沒有誤讀它......我不知道,我應該去睡覺。無論如何,MySQL做這件事並不意味着它是必需的,只是意味着它是一個小方面的說明[僅限InnoDB,這是因爲MyISAM不支持外鍵]) – Corbin 2013-02-26 22:03:13

3

在SQLite中創建一個外鍵只是創建一個約束。你應該自己創建索引。

documentation,靠近第3款的末尾:

所以,在最真實的系統中,指數應該在孩子每個鍵外鍵約束的 列上創建。