Разница между localhost и 127.0.0.1 в php
Если ваш сервер MySQL установлен локально, на одной машине с выполняющимися скриптами, то всегда в скриптах при подключении надо указывать в качестве host: localhost.
Бывают случаи когда указывается в качестве хоста айпи 127.0.0.1, либо hostname этого же сервера, либо какой то айпи этого сервера.
Это неправильно, т.к. php приподключении на localhost открывает соединение через unix-socket (напр. /tmp/mysql.sock), а не использует TCP/IP соединение. Если же вы написали что то отличное от localhost, то используется соединение с mysql сервером через TCP/IP сокет.
Это в разы медленнее и ненадежнее. Во-первых, вы этим увеличиваете количество используемых сетевых сокетов, которых в некоторых ситуациях может не хватать.
Во-вторых, Unix-socket в разы шустрее TCP/IP и потребляет меньше ресурсов. Так же на него меньше ограничений и меньше посредников между клиентом и сервером типа файрвола и т.д.
На небольших нагрузках разница не замечается. Но когда идет приличное число коннектов, то начинает все серъезно глючить.

1 комментариев:
Спасибо, раньше думал что и так и так через tcp сокет идет коннект.
Даже встречал советы при коннекте указывать путь к сокету.
Отправить комментарий