Скорость доступа к базе данных по локальному IP против петли? - PullRequest
4 голосов
/ 04 сентября 2011

Вопрос:

MySQL принимает только ОДИН IP для прослушивания. Так что вы можете сделать bind-address = 127.0.0.1 или же адрес привязки = 192.168.1.125

, когда 192.168.1.125 - тот же компьютер, что и 127.0.0.1, то есть предполагается, что вы не хотите привязываться к 0.0.0.0.

Так что, если я установлю его на 192.168.1.125, чтобы разрешить подключение к нему с другого компьютера (например, для администрирования базы данных, создания таблиц, обновления и т. Д.), То веб-приложение, работающее на 192.168.1.125, также должно будет подключаться через 192.168.1.125.

Мой вопрос сейчас такой: Будет ли производительность запросов к базе данных, выполняемых из веб-приложения на компьютере 192.168.1.125, хуже, когда приложение подключается с IP-адресом 192.168.1.125, а не когда оно подключается как 127.0.0.1?

Теоретически, он отправил бы запрос через маршрутизатор обратно самому себе, тем самым снизив производительность в отличие от интерфейса обратной связи.

Итак, достаточно ли сложен драйвер / операционная система, чтобы понять, что он не должен отправлять данные по сети, потому что в этом случае это не нужно?

Ответы [ 2 ]

4 голосов
/ 05 сентября 2011
traceroute 192.168.1.125

в Linux соответственно

tracert 192.168.1.125

в Windows должен дать вам ответ:)

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

0 голосов
/ 05 сентября 2011

Ответы:

  1. Да, ОС достаточно сложна, чтобы понять, что ей не нужно использовать физическое оборудование для общения с самим собой.
  2. Тебе все равно

Вам не нужно устанавливать bind-адрес. Если вы не установите его, он будет привязан ко всем интерфейсам. Это почти наверняка то, что вы хотите.

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

...