Ну, это просто.
Сокет - это файловая связь, и вы не можете получить доступ к сокету с другого компьютера.
С другой стороны, порты открыты для мира (зависит от конфигурации), и вы можете получить доступ к mysql с другой машины, используя комбинацию хост + порт.
Кроме того, насколько я понимаю, сокеты - это просто комбинация хост + порт, просто в формате файла. Таким образом, я не вижу какой-либо явной выгоды в использовании любого из них (насколько я знаю).
Хотя я лично предпочитаю использовать хост + порт, так как мой код становится более гибким, так как я могу перенести его на другую машину, не меняя сильно.
Скопируйте вставку из какого-нибудь старого поста :
Unix-сокеты немного быстрее, так как у вас нет накладных расходов tcp. Если вы понимаете, что потеря производительности - это вопрос загрузки сервера. Если у вас не очень высокая нагрузка на сервер, вы ее не узнаете.
Если вы используете Jails (FreeBSD) или какую-либо другую технологию виртуализации для отделения, например, MySQL-сервера от веб-сервера, вы часто используете установку tcp / ip вместо сокетов. Правила брандмауэра должны ограничивать доступ, хотя.
Вам нужно выяснить, находится ли ваша система под большой нагрузкой, чтобы был необходим сокет, или вы можете сосредоточиться на хорошем дизайне системы (разделение служб), тогда решение tcp / ip будет лучше.
Поэтому сделайте длинный ответ коротким:
Да, разница в производительности есть, сокеты быстрее. Если вы не страдаете высокой нагрузкой на сервер, просто выберите то, что лучше соответствует дизайну вашей системы.