Почему мое соединение MySQLi так медленно?

Для установления соединения с MySQLi требуется около 1 секунды для моей локальной системы. Код:

$db = new mysqli( 'localhost', 'root', 'pass', 'mydb' ); 

Почему это так медленно? Это нормально? Могу ли я его улучшить?

Solutions Collecting From Web of "Почему мое соединение MySQLi так медленно?"

Переключить «localhost» на 127.0.0.1.

Итак, вместо:

 $db = new mysqli( 'localhost', 'root', 'pass', 'mydb'); 

Использование:

 $db = new mysqli( '127.0.0.1', 'root', 'pass', 'mydb'); 

Видя, как этот вопрос кажется довольно популярным, и многие люди хотели бы знать, ПОЧЕМУ это происходит :

Это вызвано тем, что клиент MySQL выполнит поиск IPV6 для имени хоста. Если это не сработает (и в этом случае, очевидно, это так), он попытается выполнить поиск по IPV4. Из-за ошибки поиска IPV6 (AAAA), а поиск IPV4 (A) преуспевает, мы получаем цикл тайм-аута соединения, который длится около 1-2 секунд.

Стоит отметить, что эта проблема возникает только с Windows 7 и после. До Windows 7 разрешение localhost обрабатывалось файлом hosts, который был предварительно настроен с 127.0.0.1

Как сказал Тони :

Я отредактировал Mysql my.ini, чтобы изменить службу mysql, чтобы привязываться только к адаптеру loopback IPV4.

 [mysqld] ... bind=127.0.0.1 

Другой вариант – отредактировать файл hosts, найденный под windows \ system32 \ drivers \ etc.

 # localhost name resolution is handled within DNS itself. 127.0.0.1 localhost # ::1 localhost 

Используйте редактор с правами администратора, чтобы раскомментировать 127.0.0.1.