2013-10-14 47 views
14

有些列希望创建索引以提高查找和排序速度。如果该列被标记为UNIQUE,例如:UNIQUE约束是否在Sqlite中不需要显式索引?

CREATE TABLE "foo" (
    "bar" TEXT NOT NULL UNIQUE 
) 

是列“酒吧”现在索引以这样的方式,这个:

CREATE INDEX foo_bar ON foo(bar) 

将提供搜索和排序没有速度奖金?

回答

12

UNIQUEPRIMARY KEY约束确实创建了一个内部索引来加速查找,因此您不需要创建自己的查询。
(请参阅documentation

+0

有关“重要开销”的说明不再可用于SQLite页面。这可能意味着这不再是这种情况,您可以创建一个明确的索引而不会产生任何开销。 –

+0

@riot_starter那么,开销从来没有比明确的索引大 –

+0

如果这是开销,我认为这是微不足道的,相比之下,事实上,你可以在EXPLAIN QUERY PLAN中有一个更有意义的索引名称,比使用(尽管SQLite不会创建冗余的内部索引) –