Вот так выглядит моя таблица:
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?
поэтому UNIQUE(name, page)
должен создать индекс. Но достаточно ли этого индекса для выполнения быстрых запросов, использующих только поле page
? Как выбрать набор "фото" WHERE page = ?
. или JOIN pages.id ON pics.page
? Или я должен создать другой индекс (myidx) только для поля страницы?
name
илиname
иpage
, он может быть использован - если ваш запрос относится только кpage
, этот составной индекс определенно бесполезен. - person marc_s   schedule 06.08.2013