Встречается на собеседованиях • сегодня

Как устроены индексы

Индексы в базах данных ускоряют поиск данных, работая подобно оглавлению в книге. В Java при работе с базами (например, через JDBC или JPA) индексы создаются на уровне СУБД.

Типы индексов:

  • B-дерево (по умолчанию) - сбалансированное дерево для быстрого поиска, вставки, удаления
  • Хэш-индекс - для точного совпадения (=), не поддерживает диапазоны
  • Составной индекс - по нескольким столбцам (важен порядок)
sql
-- Создание индекса в SQL
CREATE INDEX idx_name ON users(last_name, first_name);

Особенности:

  • Ускоряют SELECT, но замедляют INSERT/UPDATE/DELETE (нужно обновлять индекс)
  • Занимают дополнительное место
  • Оптимизатор запросов сам решает использовать индекс или нет

В JPA аннотация @Index позволяет определить индексы на уровне модели:

java
@Entity
@Table(indexes = @Index(columnList = "lastName, firstName"))
public class User {
    // ...
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы