Проверяет понимание внутренней работы индексов и умение выбирать их под разные задачи.
B-Tree — индекс общего назначения для точных сравнений и диапазонов. GIN — индекс для полнотекстового поиска и массивов. Выбор индекса зависит от типа запросов.
B-Tree — сбалансированное дерево, хорошо работает для =, <, >, BETWEEN, ORDER BY. Это дефолтный индекс.
GIN (Generalized Inverted Index) хранит множество значений на строку. Подходит для поиска по массивам, JSONB, полнотекстовому поиску.
-- B-Tree
CREATE INDEX idx_orders_date ON orders(created_at);
-- GIN для jsonb
CREATE INDEX idx_orders_tags ON orders USING gin(tags jsonb_path_ops);Вывод: B-Tree — универсальный индекс для большинства случаев. GIN — специнструмент для поиска внутри структурированных данных.