Индексирование базы данных SQLite: Пустой индекс? - PullRequest
1 голос
/ 16 ноября 2011

У меня есть база данных .sqlite, которая содержит только одну таблицу. Эта таблица содержит три столбца, и меня интересует ТОЛЬКО индексирование одного столбца.

Проблема в том, что когда я выполняю индексацию, я получаю пустую таблицу индексов !

Я использую SQLite Manager дополнений для Firefox. Это синтаксис, который появляется перед тем, как я подтверждаю индексацию:

CREATE  INDEX "main"."tableIndex" ON "table" ("column1" ASC)

Я не знаю, в чем здесь проблема. Я попробовал этот инструмент - давно - с другой базой данных, и он отлично работает.

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

Вы не можете «видеть» содержимое индекса базы данных. Не создается таблица или табличная структура, соответствующая индексу. Так что не на что смотреть, может быть пустым.

Если команда CREATE INDEX была выполнена без ошибок, вы можете быть уверены, что индекс был создан и будет продолжать поддерживаться SQLite при добавлении, удалении и обновлении данных.

Согласно комментариям ниже, @iturki на самом деле пытается индексировать для полнотекстового поиска. SQLite поддерживает несколько расширений для полнотекстового поиска, но они не реализованы с помощью стандартной команды CREATE INDEX. См. эту ссылку .

1 голос
/ 16 ноября 2011

Попробуйте использовать ВАКУУМ запрос.Он полностью перестроит файл базы данных sqlite, перестроит все индексы и сбросит все ROWID и т. Д.

...