Skip to main content

Чому індекси не завжди корисні?

Індекси не завжди корисні, бо, крім прискорення пошуку, вони додають накладні витрати на зберігання й оновлення даних.

Основні причини

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

Підсумок: Індекси корисні лише там, де часто читають і рідко змінюють, і де фільтри чи сортування реально використовують індексовані поля. У решті випадків вони сповільнюють систему замість прискорення.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.