Подключение к серверу mysql (localhost) очень медленно

на самом деле его немного сложно:

summary: соединение с БД происходит очень медленно.

рендеринг страницы занимает около 10 секунд, но последний оператор на странице является эхом, и я могу видеть его вывод, пока страница загружается в firefox (IE такой же). в google chrome вывод становится видимым только при завершении загрузки. время загрузки примерно одинаково во всех браузерах.

при отладке я узнал, что это связано с подключением к БД, которое создает проблему. БД находилась на другой машине. для дальнейшего отладки. я развернул БД на моем локальном компьютере .. так что теперь соединение с БД находится на уровне 127.0.0.1, но подключение все еще занимает много времени.

это означает, что проблема связана с APACHE / PHP, а не с mysql. но затем я развернул свой код на другом компьютере, который подключается к БД удаленно. И все кажется прекрасным.

в основном приложение использует пару mod_rewrite .. но я удалил все файлы .htaccess, и проблема медленной связи остается.

я установил еще один APACHE на моем компьютере и использовал настройки по умолчанию. соединение все еще было очень медленным.

Я добавил следующие инструкции для измерения времени выполнения

$stime = microtime(); $stime = explode(" ",$stime); $stime = $stime[1] + $stime[0]; // my code -- it involves connection to DB $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $totaltime = ($mtime - $stime); echo $totaltime; 

выход 0.0631899833679

но панель Firebug Net показывает общее время загрузки 10-11 секунд. то же самое происходит с Google Chrome

я попытался отключить брандмауэр Windows .. связь все еще медленная

и я просто не могу найти причину .. Я пробовал несколько серверов БД .. несколько апачей .. ничто, кажется, не работает .. любая идея о том, что может быть проблемой?

[редактировать]

пожалуйста, просмотрите раздел комментариев для получения дополнительной информации. на самом деле я думаю, что я приближаюсь к решению. в основном я работаю над разработкой моей собственной структуры, которая включает переписывание url через файлы .htaccess. Я добавил несколько файлов css и js, и я заметил, что несколько запросов отправляются для этих файлов без каких-либо веских причин (в firefox). Я думаю, что проблема связана с заголовком CONTENT-LENGTH, поскольку firefox не получает этот заголовок, поэтому он продолжает ждать содержимого (и может быть, тогда есть тайм-аут). Это имеет какое-либо отношение к Transfer-Encoding: chunked?

Related of "Подключение к серверу mysql (localhost) очень медленно"

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

Просто измените:

  $link = mysqli_connect('localhost','username','password','db'); 

чтобы:

  $link = mysqli_connect('127.0.0.1','username','password','db'); 

Это повысит скорость на 1000% на локальном хосте.

Во-первых, забудьте о redherrings, php подключается непосредственно к mysql, он не использует apache. .htaccess также не связан.

Можете ли вы предоставить код того, как вы подключаетесь к db? конечно мы не хотим ваш пароль.

Можете ли вы просто подключиться к части db?

Какие запросы вы используете?

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

ОКРУГ КОЛУМБИЯ

fast-cgi исправил проблему .. благодаря srisa .. просто изменил apache для запуска php-файлов через fast-cgi