2013-02-26 55 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款的末尾:

所以,在最真实的系统中,指数应该在孩子每个键外键约束的 列上创建。

相关问题