Создавать индексы под реальные запросы после анализа (EXPLAIN, pg_stat_statements). На проде - CREATE INDEX CONCURRENTLY, чтобы не блокировать запись. Не создавать индексы "на всякий случай"; мониторить использование (pg_stat_user_indexes.idx_scan). В Go миграции с CONCURRENTLY выполняют отдельно от транзакции; при сбое проверять pg_index на invalid и пересоздавать.
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_name ON table (col);