Встречается на собеседованиях • сегодня
Работал ли с индексами по условию в БД
Да, работал с индексами по условию (partial/conditional indexes). Они создаются только для строк, удовлетворяющих определенному условию, что уменьшает размер индекса и ускоряет запросы.
Пример для PostgreSQL:
sql
-- Создание индекса только для активных пользователей
CREATE INDEX idx_active_users ON users(email) WHERE status = 'ACTIVE';В Hibernate можно использовать аннотацию @Where для сущностей, но это не создает индекс на уровне БД. Для создания условного индекса в JPA потребуется нативные SQL-запросы через @NamedNativeQuery или миграционные инструменты (Flyway/Liquibase).
Нюансы:
- Поддержка зависит от СУБД (PostgreSQL, SQLite — да; MySQL — только через фильтруемые индексы в 8.0+).
- Условие должно совпадать с WHERE в запросе, иначе индекс не сработает.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы