Индексировать стоит поля, которые регулярно участвуют в операциях фильтрации и поиска. Вот основные случаи:
WHERE — индекс позволяет базе данных находить нужные строки без полного перебора таблицыJOIN-условиях — ускоряют соединение таблиц, особенно на больших объёмах данныхORDER BY и GROUP BY — индекс помогает избежать дорогостоящей сортировкиБез индекса база данных выполняет full table scan — перебирает каждую строку таблицы. При миллионах записей это критически замедляет запросы. Индекс работает как оглавление книги: вместо чтения всего содержимого ты сразу переходишь к нужной странице.
INSERT, UPDATE, DELETE требует обновления индексаИндексы ускоряют чтение, но замедляют запись и занимают дополнительное место на диске. Поэтому важно индексировать осознанно — только те поля, которые реально влияют на производительность запросов в твоём конкретном сценарии.
Индексирование булевого поля, которое участвует в WHERE условии, почти всегда даёт значительный прирост производительности благодаря высокой селективности.
Новый — ещё не проверен сообществом
Вы