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