Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: composite index, index design, query

При проектировании составного индекса, по какому принципу определять порядок полей?

Проверяет понимание оптимизации составных индексов.

Короткий ответ

Порядок полей определяется:

  1. Селективностью (высокоселективные первыми)

  2. Частотой использования в запросах

  3. Типом операций (= перед диапазонами)

Длинный ответ

Правила порядка полей:

  1. Равенства перед диапазонами

    -- Лучше: WHERE status = 'active' AND created_at > '2023-01-01'
    CREATE INDEX idx_status_created ON Orders(status, created_at);
  2. Высокая селективность первых

    • Поле с 1000 уникальных значений перед полем с 2 значениями

  3. Часто используемые в WHERE первыми

Пример плохого индекса:

-- Плохо: created_at имеет низкую селективность в начале
CREATE INDEX idx_created_status ON Orders(created_at, status);
  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    5

Навыки

  • Postgres

    Postgres

Ключевые слова

#composite index

#index design

#query

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.