Что такое теневая таблица в SQLite?

Читая документацию по расширениям FTS3 и FTS4 для полнотекстового поиска в SQLite, я обратите внимание на использование термина «теневая таблица». Цитировать:

Для каждой виртуальной таблицы FTS в базе данных создается от трех до пяти реальных (невиртуальных) таблиц для хранения базовых данных. Эти настоящие таблицы называются «теневыми таблицами». Настоящие таблицы называются «%_content», «%_segdir», «%_segments», «%_stat» и «%_docsize», где «%» заменяется именем виртуальной таблицы FTS.

Так что же такое теневая таблица в SQLite? Как он создается и используется? Чем он отличается от виртуальной таблицы или временной таблицы?

Поиск в Google «теневой таблицы SQLite» не дает никакого значимого результата.


person Chin    schedule 17.12.2016    source источник


Ответы (1)


Виртуальные таблицы не реализованы самим ядром SQLite; все обращения к таким таблицам перенаправляются в соответствующий модуль виртуальной таблицы. Это означает, что, когда модулю виртуальной таблицы необходимо фактически сохранить некоторые данные, он должен создать другие таблицы в той же базе данных.

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

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

person CL.    schedule 17.12.2016