Как оптимизировать работу postgres из-за медленных запросов?
Использовать EXPLAIN ANALYZE
Быстродействие не только от индексов зависит, если по 10 секунд -- запросы могут тупить из-за блокировок... То есть просто запрос ждет разблокировки
Где-то или транзакции работают не так, как нужно или еще что-то, потому вы и не находите 
(!если и EXPLAIN  одинаковый, конечно) разницы... или что-то такое, разница из-за того, что на бою реальная нагрузка, а на тесте вы тестируете только то, что нужно...
Кстати потому некоторые команды боевой трафик (ну его копию) пускают на тестовый стенд, чтобы баги поймать