Чому індекси не завжди корисні?
Індекси не завжди корисні, бо, крім прискорення пошуку, вони додають накладні витрати на зберігання й оновлення даних.
Основні причини
- Сповільнюють операції запису
При кожному
INSERT,UPDATEчиDELETEбаза має оновити не лише саму таблицю, а й усі пов'язані індекси. Чим більше індексів - тим повільніше виконуються зміни. - Займають додаткове місце Індекси зберігаються окремо від таблиці й можуть займати значний обсяг, особливо якщо індексуються великі текстові чи числові поля.
- Можуть не використовуватися Якщо запит вибирає забагато рядків таблиці (наприклад, >20-30%), оптимізатор вирішить, що повний прохід швидший, ніж робота через індекс.
- Ускладнюють оптимізацію За великої кількості індексів оптимізатор може обрати «невдалий» індекс, і запит виконається навіть повільніше, ніж без індексу.
- Неефективні для часто змінюваних даних У таблицях з високою частотою оновлень індекси швидко фрагментуються, що знижує їхню користь і потребує періодичного обслуговування (rebuild/reorganize).
Підсумок: Індекси корисні лише там, де часто читають і рідко змінюють, і де фільтри чи сортування реально використовують індексовані поля. У решті випадків вони сповільнюють систему замість прискорення.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.