SQLite индексирует группы строк? - PullRequest
0 голосов
/ 05 ноября 2019

У меня большой набор пар городов и штатов, которые я загружаю в таблицу SQLite. Я буду опрашивать город и буду знать государство. Предположим, я хочу найти конкретный город, который, как я знаю, находится в Техасе. Следующий запрос примерно O (n), несмотря на ограничение, верно?

SELECT * FROM cities WHERE state_abbr=? LIMIT 1

Есть ли какой-нибудь способ группировки строк по состоянию или создания вторичного индекса или чего-то такого, чтобы SQLite знал, где найти«TX» строки и поиск только внутри них? Я рассмотрел возможность создания отдельных таблиц для каждого состояния - и это вариант - но я надеюсь, что смогу просто сделать что-то в этой единственной таблице, чтобы сделать запросы более эффективными.

В учебниках, которые я 'После прочтения, запрос не изменяется после создания составного индекса. SQLite просто использует индекс под капотом для того же запроса?

1 Ответ

1 голос
/ 05 ноября 2019

Почему бы просто не иметь составной индекс?

create index cities_state_abbr_city on cities(state, city);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...