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

Какие бы спроектировал индексы для поиска сотрудников, принятых в течение недели по заданному условию

Для эффективного поиска сотрудников, принятых за последнюю неделю, я бы создал индекс на поле даты приема (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), поэтому условия должны использовать "чистое" поле даты.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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