Для этих независимых условий подойдут отдельные B-tree индексы на title и date_published. Эффект зависит от доли подходящих строк; диапазон, возвращающий почти всю таблицу, может не выиграть от индекса.
Улучшение производительности запросов с помощью индексов
Для этих независимых условий подойдут отдельные B-tree индексы на title и date_published. Эффект зависит от доли подходящих строк; диапазон, возвращающий почти всю таблицу, может не выиграть от индекса.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Проанализировать набор SQL‑запросов и подобрать оптимальные индексы для ускорения их выполнения.
SELECT * FROM books
WHERE title = 'War and Peace';
SELECT * FROM books
WHERE date_published >= '01-01-2024';
Ответ
Для этих независимых условий подойдут отдельные B-tree индексы на title и date_published. Эффект зависит от доли подходящих строк; диапазон, возвращающий почти всю таблицу, может не выиграть от индекса.
Пример DDL:
CREATE INDEX books_title_idx ON books (title);
CREATE INDEX books_date_published_idx ON books (date_published);
Дату лучше задавать однозначно, например в PostgreSQL: date_published >= DATE '2024-01-01'. Составной индекс (title, date_published) полезен для запросов с совместным условием, но не является универсальной заменой двух отдельных индексов здесь. Проверяйте план, объём результата и стоимость записи: лишние индексы занимают место и замедляют INSERT/UPDATE.