Индекс выражения - Expression index

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

Обычно индекс выражения используется для поддержки без учета регистра поиск или ограничения. Например, если веб-сайт хочет сделать имена пользователей нечувствительными к регистру, но при этом сохранить регистр, который был изначально введен пользователем, можно создать индекс для представления имени пользователя в нижнем регистре:

CREATE INDEX users__last_name_lower ON users (lower (last_name));

Это создаст уникальный индекс для "lower (last_name)". Любые запросы, выполняющие поиск по "lower (last_name)", могут затем использовать этот индекс:

ВЫБЕРИТЕ user_id ИЗ пользователей ГДЕ lower (last_name) = lower ('Smith');

Поддержка базы данных

Основные базы данных, поддерживающие индексы выражений, включают: DB2 (начиная с версии 10.5[1]), База данных Oracle (начиная с выпуска 8i.[2]) и PostgreSQL (начиная с версии 7 как минимум[3]).

Рекомендации

  1. ^ «Что нового в DB2 10.5 для Linux, UNIX и Windows». Получено 2015-08-26.
  2. ^ "Индексы на основе функций Oracle". Получено 2015-08-26.
  3. ^ «PostgreSQL - Руководство пользователя - Глава 7. Индексы и ключи». Получено 2015-08-26.