Я создал простую тестовую страницу PHP, которая подключается к базе данных MySQL, выбирает одно значение типа int и освобождает результат. Загрузка страницы занимает 5 секунд или более. Я видел много постов об этой или подобных проблемах, но ни одна из резолюций не сработала. Вот вывод, который я получаю:
mysql_connect took 4.8948628902435 seconds
mysql_select_db 0.00073790550231934 seconds
mysql_query took 0.0013959407806396 seconds
mysql_free_result took 2.0980834960938E-5 seconds
Как видите, соединение занимает слишком много времени, а все остальное быстро.
Что я пробовал
- Отключен IPv6
- Использовал IP вместо FQDN для хоста MySQL.
- Изменены некоторые настройки конфигурации.
Факты
- Все другие не-PHP-сайты отвечают мгновенно.
- Проверка связи с сервером MySQL дает задержку в 1 мс.
- Запрос к базе данных с использованием MySQL Query Browser дает мгновенное время ответа.
К вашему сведению - я не пишу PHP, поэтому нормально предлагать мне исправления.
Тестовый скрипт
<?php
$mtime = microtime();
$mtime = explode(' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
mysql_connect("the_ip||the_hostname", "the_username", "the_password");
$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = ($endtime - $starttime);
echo '<h2> mysql_connect took ' .$totaltime. ' seconds</h2>';
?>
Трассировка маршрута происходит мгновенно:
Кстати, речь идет о MantisBT , а также Wordpress.
1 2 ms <1 ms <1 ms 1.2.3.4
2 <1 ms <1 ms <1 ms MYSQL5 [5.6.7.8]