0
如果我創建這樣一個表: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(?, ?, ?, ?, ?)
索引不會幫助查詢規劃器,因爲主索引(PK是隱式索引)被覆蓋。 – user2864740
使用[EXPLAIN QUERY PLAN](http://www.sqlite.org/eqp.html)檢查查詢是否使用索引。 –