【发布时间】:2013-10-23 11:17:57
【问题描述】:
PRIMARY KEY(col1, col2)
创建一个名为“sqlite_autoindex_mytable_1”的索引。我在“SQlite 专家”中看到了它。在“要索引的字段”框中,它同时显示 col1 和 col2。
在这篇文章中: https://dba.stackexchange.com/a/14260 它说如果我想在没有 col1 的 JOIN 查询中使用 col2,我必须为 col2 创建单独的索引。
所以我需要补充:
CREATE INDEX "myidx" ON "mytable"("col2");
如果我有这个问题:
SELECT t2.* FROM mytable as t1
INNER JOIN mytable2 as t2 ON t1.col2 = t2.id
我还需要 col2 的索引吗?我没有在其中使用col1。
那么这个查询呢:
SELECT t2.* FROM mytable as t1
INNER JOIN mytable2 as t2 ON t1.col2 = t2.id WHERE t1.col1 = x
这里我使用 col1,但在 where 子句中。它还需要 col2 索引吗?
【问题讨论】:
标签: sql sqlite primary-key composite-primary-key