Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Индексы для нескольких столбцов
Индексы для нескольких столбцов
Если вашим приложениям часто требуется поиск, упорядочение или группировка по некоторой группе из нескольких столбцов в конкретной таблице, будет полезно создать индекс для нескольких столбцов (также называемый составным или композитным индексом).
Оптимизатор будет использовать подмножество сегментов такого индекса для оптимизации запроса, если порядок слева направо, в котором запрос обращается к столбцам в предложении ORDER BY, соответствует порядку слева направо в списке столбцов, определенному в индексе. При этом для запросов не требуется иметь в точности такой же список столбцов, как определено в индексе, чтобы индекс мог быть использован оптимизатором. Индекс также может быть использован, если подмножество
столбцов в предложении ORDER BY начинается с первого столбца индекса, определенного для нескольких столбцов.
Firebird может использовать один элемент составного индекса для оптимизации поиска, если все предшествующие элементы индекса также используются. Рассмотрим сегментированный индекс для трех столбцов col_w, col_x и col_y в том порядке, как показано на рис. 18.1.
Рис. 18.1. Сегментированный индекс
Этот индекс будет использован оптимизатором для следующего запроса:
SELECT <список столбцов> FROM ATABLE
ORDER BY COL_w, COL_X;
Он не будет использован для следующих запросов:
SELECT <список столбцов> FROM ATABLE
ORDER BY COL_x, COL_y;
/**/
SELECT < список столбцов> FROM ATABLE
ORDER BY COL_x, COL_w;
- ГЛАВА 18. Индексы.
- Индексы по выражениям
- Одновременный запуск нескольких копий сервера (multi-instancing)
- Большие индексы
- Использование типов содержимого и столбцов
- 3.5 Проблемы доступа при использовании нескольких протоколов
- Добавление, изменение и удаление столбцов списка
- Создание столбцов и работа с типами содержимого
- Я работаю на компьютере не один. Как настроить Windows для нескольких пользователей?
- 2.3.5. Индексы
- Форматирование строк и столбцов
- Построение диаграммы на основе данных нескольких рабочих листов