Два вопроса для размышления:
- Сколько столбцов можно назначить для запроса?
- Часто ли данные меняются? Много это?
Если у вас есть небольшое число столбцов-кандидатов и данные не меняются много , то вы можете рассмотреть возможность добавления постоянного индекса для любого или даже для всех столбец кандидатов.
" Богохульство! ", слышу я. Большинство источников говорят вам «никогда» индексировать каждый столбец таблицы, но этот совет основан на общем предположении, что таблицы часто изменяются.
Вы будете платить цену в дополнительном хранилище, а также снижение производительности при изменении данных.
Насколько мала мала и сколько стоит лот , и стоит ли компромисс?
Невозможно сказать, что такое монастырь, потому что «слишком медленный» обычно является субъективным измерением.
Вам нужно будет попробовать, измерить размер ваших индексов и затем их влияние на результаты поиска. Вы должны будете сбалансировать затраты с увеличением степени удовлетворения ваших клиентов.
[Добавлено] О, еще одна вещь: временные индексы не только физически медленнее, чем сканирование таблицы, но и разрушают ваш параллелизм. Для повторной индексации таблицы обычно (всегда?) Требуется полная блокировка таблицы, поэтому в действительности за один раз можно выполнить только один поиск пользователя.
Удачи.