Встречается на собеседованиях • сегодня
Какие бы спроектировал индексы для поиска сотрудников, принятых в течение недели по заданному условию
Для эффективного поиска сотрудников, принятых за последнюю неделю, я бы создал индекс на поле даты приема (hire_date). В SQL это выглядело бы так:
sql
CREATE INDEX idx_employee_hire_date ON employees(hire_date);Оптимальные запросы с этим индексом:
sql
-- За последние 7 дней
SELECT * FROM employees
WHERE hire_date >= CURRENT_DATE - INTERVAL '7 days';
-- За конкретную неделю
SELECT * FROM employees
WHERE hire_date BETWEEN '2024-01-01' AND '2024-01-07';
text
Дополнительные рекомендации:
1. Для частых запросов по диапазону дат индекс будет эффективен
2. В PostgreSQL можно создать частичный индекс для часто запрашиваемых периодов
3. Для больших таблиц можно рассмотреть кластеризацию по дате приема
Важно: индекс не поможет при функциях над полем (например, EXTRACT), поэтому условия должны использовать "чистое" поле даты.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы