Существует ряд рекомендаций по выбору столбцов которые стоит индексировать:
- Создавать индекс рекомендуется, если часто выбираются данные, составляющие примерно 15% от данных таблицы. Этот процент может значительно варьироваться в зависимости от относительной скорости просмотра таблицы и от степени кластеризации данных строки по отношению к ключу индекса. Чем быстрее просматривается таблица, тем ниже процент. Чем больше кластеризация данных строки, тем процент выше.
- Для повышения производительности соединений нескольких таблиц индексируйте столбцы, которые используются в соединении.
Заметка: Для первичных и уникальных ключей индексы создаются автоматически, но при желании можно создать индексы и для внешних ключей. - Для маленьких таблиц индексы не требуются. Если запрос занимает долгое время, то возможно количество данных в таблице значительно возросло.
- Значения в столбце относительно уникальны
- Имеется широкий диапазон значений (подходит для обычного индекса)
- В столбце содержаться множество неопределенных значений, а при запросах часто выбираются все строки, имеющие какое либо значение.
Столбцы, обладающие следующими признаками, менее подходят для индексирования:
- В столбце много пустых значений, а поиск непустых значений не проводится.
- Столбцы с типом LONG и LONG RAW индексировать нельзя.
Размер одного элемента индекса не может превышать примерно половины свободного пространства (минус служебная часть) в блоке данных.