创建外键是否意味着创建索引?

时间:2013-02-26 21:54:39

标签: sql sqlite

如果我在表a中有一列Foo,我创建了一个新表Bar,其中b列是Foo.a的外键如果我想要bBar的所}}?

(如果重要的话,我正在使用SQLite。)

3 个答案:

答案 0 :(得分:3)

外键仅用于'force exists relationships between tables',但不会根据相关列的索引自动编制索引。索引Foo.a将加快Bar.b上的插入/更新,而索引Bar.b将加快Bar.b上的选择。

答案 1 :(得分:3)

在SQLite中创建外键只是创建一个约束。你应该自己创建索引。

documentation开始,接近第3段末尾:

  

因此,在大多数实际系统中,应该在子键上创建索引   每个外键约束的列。

答案 2 :(得分:1)

您必须自己创建索引。至少我不知道DBMS会自动执行此操作。

相关问题