Посмотрите pg_indexes с фильтрами schemaname и tablename. Затем сопоставьте определение индекса с запросом, порядком колонок и планом выполнения.
Как узнать существующие индексы таблицы PostgreSQL
Посмотрите pg_indexes с фильтрами schemaname и tablename. Затем сопоставьте определение индекса с запросом, порядком колонок и планом выполнения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Нужно проверить индексы таблицы public.users, прежде чем предлагать новый. Как получить их определения и почему наличие индекса ещё не доказывает его полезность?
Ответ
Посмотрите pg_indexes с фильтрами schemaname и tablename. Затем сопоставьте определение индекса с запросом, порядком колонок и планом выполнения.
Запрос:
SELECT indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'public' AND tablename = 'users';
Проверьте уникальность, выражения, частичный предикат и порядок полей. Не создавайте дубликат существующего индекса. Реальный выбор планировщика зависит от статистики и селективности; EXPLAIN ANALYZE выполняет запрос и требует осторожности для изменяющих операций.