марта 04, 2007

Разница между 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 и потребляет меньше ресурсов. Так же на него меньше ограничений и меньше посредников между клиентом и сервером типа файрвола и т.д.

На небольших нагрузках разница не замечается. Но когда идет приличное число коннектов, то начинает все серъезно глючить.

2 комментария:

Unknown комментирует...

Спасибо, раньше думал что и так и так через tcp сокет идет коннект.

Даже встречал советы при коннекте указывать путь к сокету.

odetteyan комментирует...

Harrah's Lake Tahoe Casino & Hotel
Harrah's Lake Tahoe Casino & Hotel 당진 출장마사지 - Stateline, NV. View real-time 안동 출장마사지 driving 여수 출장안마 directions 당진 출장안마 to Harrah's Lake Tahoe Casino & Hotel, Stateline, NV, based 제천 출장마사지 on live traffic updates and