Назад | Перейти на главную страницу

MYSQL - ЛОКАЛЬНЫЙ ХОСТ быстрее, чем, например, (домен) mysql.domain.com

Некоторые хостинг-провайдеры для хоста MySql (т.е. php файлы) не позволяет использовать localhost для mysql, вместо этого пользователи должны использовать такие имена хостов: mysql.example.com.

Будет ли разница в производительности, если они будут использовать 127.0.0.1 (или даже localhost) в имени хоста? Не поддерживает хосты типа доменного имени (например, mysql.example.com) нужно немного больше времени для разрешения / dns на конкретный IP?

Из вашего вопроса очень сложно что-то сделать.

Я решил, что ваш вопрос

Будет ли удаленная база данных у моего провайдера, к которой я могу получить доступ через mysql.example.com быть медленнее, чем локальная база данных, которую я запускаю на своем компьютере / VPS и к которой я могу получить доступ через localhost.

Ответ: это зависит от многих вещей, среди которых

  • Характеристики вашего собственного сервера / VPS
  • Характеристики сервера базы данных
  • Нагрузка на сервер базы данных
  • Нагрузка на вашу машину для работы без баз данных
  • Тип выполняемых вами запросов

и диапазон будет от «локальный намного быстрее, чем удаленный» до противоположного «удаленный намного быстрее».

Когда вы используете нотацию "localhost" на самом деле MySQL использует Сокеты домена UNIX. Они более производительны, чем TCP / IP, и при высокой нагрузке могут иметь заметную разницу. Но домен UNIX является локальным для хоста по своей природе, это не сеть, поэтому это означает, что вы не можете использовать с ним удаленный сервер MySQL.

Они используют выделенный сервер базы данных, потому что им проще управлять.

Наличие выделенных серверов баз данных и веб-серверов упрощает обновление, упрощает резервное копирование и т. Д. Если у вас есть все для одного клиента на одном сервере, вам нужно запускать обновления и резервные копии для каждого отдельного экземпляра. Разделив их, вы можете иметь на одном сервере столько клиентов, сколько может обработать машина.

Сервер достигает предела? Просто добавьте еще один того же типа.

В большинстве случаев более низкая скорость или более высокая задержка незначительны, если вы (клиент) находитесь в точке, где это влияет на ваше приложение, вы все равно можете перейти на другой тип хостинга, например корневой сервер, на котором вы контролируете все аспекты, вплоть до того, какую версию программного обеспечения вы хотите установить.

Мне не совсем понятно, о чем вы спрашиваете, но у меня сложилось впечатление, что вы говорите о веб-сервере, таком как Apache или nginx, работающем на том же арендованном сервере, что и ваша база данных MySql в центре обработки данных хостинг-провайдера. Вы беспокоитесь о подключении веб-сервера к базе данных, и единственная разница между этими двумя вариантами - это то, какое имя вы используете в строке подключения.

Учитывая этот сценарий, не имеет значения, какой из них вы используете. Что может иметь значение, так это то, как эти два имени направлен. Localhost всегда будет маршрутизироваться через интерфейс обратной петли (за исключением очень странной конфигурации). mysql.example.com может закончиться тем, что отключится от физического интерфейса, прежде чем вернуться в вышестоящий маршрутизатор, где-то у нашего коммутатора. Вы хотите избежать этого сценария: там есть дополнительный переход, возможность использовать измеряемую полосу пропускания, а также тот факт, что интерфейс обратной связи часто имитирует соединения 10 Гбит / с (или лучше; по крайней мере 40 Гбит / с возможно), в то время как ваш физический интерфейс может быть только 1 Гбит / с.

Однако на самом деле это не свойство неправильного имени. Это свойство того, что ничего не настроено, так что это соединение использует интерфейс обратной связи.


С другой стороны, вы можете говорить о подключении из вашего локального офиса к базе данных MySql, размещенной где-то в удаленном центре обработки данных. В таком случае тогда да: это будет много медленнее, потому что трафик в базу данных должен проходить через ваше WAN-соединение и Интернет, а не только через локальную сеть (или ваш личный интерфейс обратной петли, учитывая, что вы сравниваете это с localhost).

Однако это не то, что я бы назвал «производственным» развертыванием. Обычно я стараюсь разместить все части приложения в одной физической сети. Если это клиент-серверное приложение, где клиенты работают на рабочих столах пользователей в сети компании, то сервер базы данных также должен находиться в этой сети (обратите внимание, что это не обязательно должен быть localhost: просто не выходить через соединение WAN) . Если это веб-приложение, то база данных должна находиться в том же центре обработки данных (не на том же сервере, но в том же сегменте сетевого коммутатора), что и веб-сервер, но эти два сервера могут легко находиться за тысячу миль от людей, просматривающих Интернет. страниц.