Я думаю, что ключ к этому исполнению состоит в том, чтобы подумать о том, как вы храните свои данные, и иметь некоторые метаданные вокруг них.
Что я имею в виду под этим?
Составьте список городов, в которых, например, есть магазин в Нью-Джерси, и отфильтруйте города, которые возвращаются из ваших сторонних API, на основе вашего основного списка. Вы можете обнаружить, что у вас есть только 5 матчей из 450 возвращенных. Точно так же я бы не объединил 450 запросов в один запрос - попробуйте разделить их на более мелкие суммы.
Кроме того, если вы можете создавать индексы на основе состояний, вы можете обнаружить, что меньший индекс - особенно для NJ - может обрабатывать ваш запрос более эффективно, чем выбор данных конкретного состояния в большем индексе.
Надеюсь, это поможет,
Киран