Ale*_*lex 4 sql sqlite indexing performance composite-key
这就是我的表格:
CREATE TABLE pics(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
page INTEGER,
w INTEGER,
h INTEGER,
FOREIGN KEY(page) REFERENCES pages(id) ON DELETE CASCADE,
UNIQUE(name, page)
);
CREATE INDEX "myidx" ON "pics"("page"); # is this needed?
Run Code Online (Sandbox Code Playgroud)
所以UNIQUE(name, page)应该创建一个索引.但是这个索引是否足以进行page仅涉及该字段的快速查询?就像选择一组"照片"一样WHERE page = ?.还是JOIN pages.id ON pics.page?或者我应该只为页面字段创建另一个索引(myidx)?
如上所述,您将需要您的其他myidx索引,因为您的UNIQUE索引name首先指定.换句话说,它可以用于查询:
name name 和 pagepage一个人.您的另一个选择是重新排序UNIQUE索引并将page列放在第一位.然后它只能用于page查询,但只会与name查询不兼容.
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |