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