Как уменьшить время получения данных с удаленной БД?
Имеется сервер A с api за бугром
Имеется сервер B с базой на mongodb в РФ (спасибо ФЗ-152)
ping между серверами 121ms.
имеем redis для кеша
При работе с локальной базой время получения всех данных тяжелым запросом занимает 1.5сек (+redis уменьшает до 0.2ms)
А вот если Сервер A переключаем на работу с базой на сервере B получаем время получения данных с нее 14 сек (redis уменьшает до 3)
Как в итоге добиться результата хотя бы 5 сек и менее без redis
Буду рад услышать советы/ответы не только для mongodb и любых других баз, логика будет думаю одна.
В голову пока пришло только создание тунеля с постоянным подключением от сервера А к B. Но не уверен что это выход.
Таким образом, персональные данные гражданина Российской Федерации, первоначально внесенные в базу данных на территории Российской Федерации и актуализируемые в ней («первичная база данных»), могут далее передаваться в базы данных, расположенные за пределами России («вторичные базы данных»), администрируемые иными лицами, с соблюдением положений о трансграничной передаче данных. Такие вторичные базы данных могут использоваться, в частности, для целей резервного копирования, оказания услуг по осуществлению рекламных рассылок и пр.
1) кэш уже есть
2) меньше гонять данных по сети. все выборки производить средствами СУБД. ничего на клиенте не фильтровать, этим должна СУБД заниматься.
3) постоянное подключение к СУБД.
2 пункт гонять меньше данных наоборот не возможен, данные гоняются в обе стороны в realtime
Постоянно. Скорость передвижения, путь, состояние оборудования итд.
3)Вроде на php нельзя делать постоянное подключение. точнее в модели nginx->restapi...