Я работаю над проектом с довольно большой базой данных Oracle (хотя мой вопрос одинаково применим и к другим базам данных). У нас есть веб-интерфейс, который позволяет пользователям выполнять поиск практически по любой возможной комбинации полей.
Чтобы эти поиски выполнялись быстро, мы добавляем индексы к полям и комбинации полей, по которым, как мы полагаем, пользователи обычно будут искать. Однако, поскольку мы действительно не знаем, как наши клиенты будут использовать это программное обеспечение, трудно сказать, какие индексы создавать.
Космос - это не проблема; у нас есть 4-терабайтный RAID-накопитель, из которого мы используем лишь небольшую часть. Однако меня беспокоит возможное снижение производительности из-за слишком большого количества индексов. Поскольку эти индексы необходимо обновлять каждый раз при добавлении, удалении или изменении строки, я полагаю, что было бы плохой идеей иметь десятки индексов в одной таблице.
Итак, сколько индексов считается слишком большим? 10? 25? 50? Или я должен просто осветить действительно, действительно общие и очевидные случаи и игнорировать все остальное?