Индексирование базы данных SQLite: Пустой индекс?
У меня есть база данных.sqlite, которая содержит только одну таблицу. Эта таблица содержит три столбца, и меня интересует ТОЛЬКО индексирование одного столбца.
Проблема в том, что когда я выполняю индексацию, я получаю пустую таблицу индексов!
я использую SQLite Manager
дополнения для Firefox. Это синтаксис, который появляется перед подтверждением индексации:
CREATE INDEX "main"."tableIndex" ON "table" ("column1" ASC)
Я не знаю, в чем здесь проблема. Я попробовал этот инструмент - давно - с другой базой данных, и он отлично работает.
Любое предложение?
2 ответа
Вы не можете "видеть" содержимое индекса базы данных. Не создается таблица или табличная структура, соответствующая индексу. Так что не на что смотреть, может быть пустым.
Если команда CREATE INDEX была выполнена без ошибок, вы можете быть уверены, что индекс был создан и будет поддерживаться SQLite при добавлении, удалении и обновлении данных.
Согласно комментариям ниже, @iturki на самом деле пытается индексировать для полнотекстового поиска. SQLite поддерживает несколько расширений для полнотекстового поиска, но они не реализованы с помощью стандартной команды CREATE INDEX. Смотрите эту ссылку.
Попробуйте использовать VACUUM запрос. Он полностью перестроит файл базы данных sqlite, перестроит все индексы, сбросит все ROWID и т. Д.