Время жизни виртуальных таблиц sqlite3 - PullRequest
4 голосов
/ 02 февраля 2011

Может кто-нибудь сказать, пожалуйста, время жизни виртуальных таблиц, созданных в sqlite3.У меня есть приложение для Android с функцией поиска, и я хочу использовать функцию быстрого текстового поиска sqlite.

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

Любая помощь?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2011

Модуль SQLite FTS создает несколько «внутренних» таблиц для каждой виртуальной таблицы, которую вы определяете. Эти таблицы хорошо видны в схеме базы данных, поэтому виртуальные таблицы FTS, а также их базовые данные полностью содержатся в файле базы данных.

Это может отличаться от других типов виртуальных таблиц; например расширение VirtualShape позволяет считывать файлы шейп-файлов ESRI (.shp) в виде таблиц; они (естественно) хранятся отдельно от файла базы данных SQLite.

В любом случае определение любой виртуальной таблицы хранится в файле базы данных, как обычная таблица; поэтому ответ на ваш вопрос:

Нет, нет необходимости создавать их заново каждый раз, когда вы открываете базу данных.

4 голосов
/ 02 февраля 2011

В соответствии со спецификацией формата SQLite3 определения виртуальной таблицы хранятся в таблице схемы, как и любая другая таблица. Любые индексы для виртуальной таблицы также хранятся в файле БД.

Я понимаю, что все это означает, что виртуальная таблица хранится в файле БД и поэтому является постоянной. Вам не нужно воссоздавать его каждый раз, когда вы открываете соединение с БД - в любом случае это не имеет особого смысла.

Простой тест с использованием инструмента CLI sqlite3 и таблицы FTS3 подтверждает это: -)

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