sqlite:如果我已有多列主键,是否需要索引?

时间:2015-07-12 05:42:21

标签: sqlite

如果我创建一个这样的表:

CREATE TABLE IF NOT EXISTS Tiles 
(
     X INTEGER NOT NULL, 
     Y INTEGER NOT NULL, 
     Zoom INTEGER NOT NULL, 
     Type INTEGER NOT NULL, 
     Tile BLOB NULL,
     PRIMARY KEY(X, Y,Zoom,Type)
)

我还需要在(X, Y, Zoom, Type)上添加索引才能快速搜索吗?

我的搜索查询是这样的:

SELECT Tile 
FROM Tiles 
WHERE X = %1 AND Y = %2 AND Zoom = %3 AND Type = %4

我的插入查询是这样的:

REPLACE INTO Tiles(X, Y, Zoom, Type, Tile) 
VALUES(?, ?, ?, ?, ?)

1 个答案:

答案 0 :(得分:1)

在SQLite中,当您声明主键时会自动创建索引,例如参见documentation,因此无需创建其他索引。