У меня есть простое приложение laravel 11, работающее на php 8.3, и я меняю настройки базы данных (mysql) только через файл .env, когда использую локальную базу данных (127.0.0.1), все происходит очень быстро, я записал время запроса, и это может быть видел здесь:
[2024-06-12 22:05:42] local.INFO: select * from w_users where id = ? limit 1 {"bindings":[1],"time":4.1}
[2024-06-12 22:05:42] local.INFO: select * from w_users where w_users.id = ? limit 1 {"bindings":[1],"time":1.49}
позже я переключился на внешнего поставщика баз данных (цифровой океан) и заметил, что страница работает очень медленно, вот результаты, которые я записал:
[2024-06-12 22:07:03] local.INFO: select * from w_users where id = ? limit 1 {"bindings":[1],"time":1228.27}
[2024-06-12 22:07:03] local.INFO: select * from w_users where w_users.id = ? limit 1 {"bindings":[1],"time":352.72}
Я пробовал несколько поставщиков облачных баз данных, но это всегда очень медленно, что можно сделать? примечание: обе базы данных (локальная и удаленная создаются с использованием одного и того же сценария, и обе пусты и не содержат данных)
моя архитектура требует нескольких экземпляров laravel за балансировщиком нагрузки, обращающихся к общей удаленной базе данных
Попробуйте использовать ping
, чтобы проверить задержку между хостом вашего приложения и хостом удаленной базы данных. Затем сравните это с задержкой ping 127.0.0.1
. Вы видите разницу?
Мне не удалось найти решение, в итоге я использовал выделенный ec2 с работающим на нем MySQL, находясь в той же сети, приложение теперь работает быстро, как и ожидалось.
Скорость сетевого подключения играет значительную роль при подключении к любым удаленным ресурсам. Вы мало что можете с этим поделать.