оптимизация SQL-запросов к таблицам без rowid или первичного ключа - PullRequest
0 голосов
/ 22 октября 2018

У меня есть БД, в которой есть таблица, в которой нет rowid или первичного ключа.Он просто имеет две колонки, метку времени и значение.оба значения являются двойными.отметка времени сортируется в порядке возрастания.

Есть ли способ сообщить sqlite, что отметка времени отсортирована так, что она выполняет двоичный поиск по отметкам времени?если нет, то есть ли способ просто получить индекс строки результата запроса и выполнить запрос, используя индекс строки для ускорения?

1 Ответ

0 голосов
/ 22 октября 2018

Таблицы SQL представляют неупорядоченные наборы.Порядка нет.

SQL предоставляет индексы, которые обычно ведут себя точно так, как вы описали.Итак, вы хотите:

create index idx_t_timestamp_value on t(timestamp, value);

Этот запрос будет оптимальным для where предложений, таких как:

where t.timestamp = ?

Обратите внимание, что индекс используется автоматически.Кроме того, он занимал дополнительное место для хранения (если это является проблемой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...