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