Я работаю в системе, которая должна получать код страны на основе IP-адреса и должна быть доступна для нескольких приложений всех форм и размеров на нескольких серверах.
На данный момент это получается с помощью запроса cURL к уже существующей библиотеке geo.php, которая, я думаю, разрешает код страны из файла .dat, загруженного из MaxMind. Очевидно, хотя этот метод сталкивался с проблемами при больших нагрузках, возможно, из-за утечки памяти? Никто точно не уверен.
Полномочия, которые мне предложили, чтобы мы отказались от cURLing и извлекли код страны из локальной библиотеки геокодирования с данными, также хранящимися в локальном файле. Или, возможно, мастер-файл, размещенный, например, на Amazon S3. Я немного опасаюсь того, что массивный файл поиска по IP-адресам в стране будет храниться без необходимости в сотне разных мест, конечно.
Одна вещь, которую я сделал, поместила данные в базу данных mysql и получила необходимые результаты, подключившись к ней; Я не знаю наверняка, но мне кажется, что наши сайты, как правило, работают быстро и эффективно при подключении к централизованным данным MySQL, так что это не будет хорошим способом решения этой конкретной проблемы?
Мой вопрос: каковы относительные издержки получения данных различными способами? врезать его, сделать запрос к удаленной базе данных, получить его из локального файла, получить его из файла, размещенного где-то еще? Трудно понять, какие из них являются более эффективными или неэффективными, и может ли относительное повышение эффективности быть достаточно большим, чтобы иметь значение ...