Индексы

Индекс – это специальная надстройка над таблицей, предназначенная для повышения скорости обработки поисковых запросов, связанных с этой таблицей. Индекс (если он существует) всегда является частью таблицы.

Например, запрос

SELECT * FROM "КАДРЫ" WHERE "ТАБЕЛЬНЫЙ НОМЕР" = 101;

будет работать быстрее, если по столбцу "ТАБЕЛЬНЫЙ НОМЕР" построить индекс.

При обработке поискового запроса СУБД ЛИНТЕР может использовать индексы для эффективного поиска данных. В некоторых случаях СУБД по собственной инициативе создает индексы для ускорения обработки запроса (пункт «Временные индексы»).

Индексы наиболее полезны для поиска значений в следующих случаях:

  • по условиям =,  >, < ,  >=, < =;

  • попадание в диапазон (BETWEEN);

  • попадание в список (IN);

  • поиск на соответствие шаблону (LIKE) если первый символ шаблона не является метасимволом.

Как правило, индексы бесполезны для поиска по условию <  > или LIKE, если первый символ шаблона является метасимволом.

Созданный индекс автоматически поддерживается и используется СУБД ЛИНТЕР.

Изменения в данных таблицы (такие, как добавление новых строк, обновление или удаление строк) автоматически отражаются во всех соответствующих индексах.

Примечание

Не производятся изменения в индексах на системные таблицы $$$SYSRL и $$$ATTRI, касающиеся вспомогательных временных таблиц и их столбцов.

Индексы логически и физически независимы от данных. Их можно удалять и создавать в любой момент, не оказывая влияния на данные в таблице или другие индексы. После удаления индекса все клиентские приложения будут функционировать по-прежнему, однако доступ к ранее индексированным данным может быть замедлен. Это правило не относится к автоматически создаваемым самой СУБД ЛИНТЕР индексам для поддержки первичных, уникальных и внешних ключей. Удаление таких индексов делает невозможным добавление и удаление записей таблицы.

Индексы могут быть созданы по одному или нескольким столбцам таблицы, а также по отдельным словам (или фразам) текстовых документов.

Для тех версий ОС, которые не поддерживают работу с файлами размером больше 2 Гбайт, индексы можно размещать в нескольких индексных файлах.