XAMPP: Запити займають набагато більше часу при підключенні до бази даних MySQL


1

Я розробляю в PHP і MySQL локально, використовуючи XAMPP у Windows. Веб-сайт досить швидкий, коли не підключається до будь-якої бази даних. Однак, коли я підключаюся до бази даних MySQL, простий запит тепер займає приблизно секунду.

Примітка. Це не стосується мого віддаленого сервера Debian. Мій vServer швидко обробляє запити, незалежно від використання бази даних чи ні.

Я використовую Windows 8 x64 і останню версію XAMPP, і я не вніс жодних змін у конфігураційні файли.

Що може бути причиною цього поганого виконання?

Редагувати: це код з'єднання, який я використовую:

$sql = new SqlConnection($cfgDbHost, $cfgDbUser, $cfgDbPassword);
$sql->setCurrentDatabase($cfgDbDatabase);

[...]

    class SqlConnection
    {
        private $Link, $CurrentDatabase, $IsConnected;

        function SqlConnection($host = 'localhost', $user = 'root', $pass = '')
        {
            $this->Link = @mysql_connect($host, $user, $pass);
            $this->IsConnected = $this->Link != NULL;
        }
        function setCurrentDatabase($database)
        {
            if (@mysql_select_db($database, $this->Link))
            {
                $this->CurrentDatabase = $database;
                return true;
            }
            else
            {
                return false;
            }
        }
        [...]

1
Скористайтеся браузером SQL (тобто HeidiSQL) і запустіть деякі тестові запити безпосередньо проти бази даних ... зробіть це на сервері та з віддаленого комп'ютера та порівняйте час. Це може бути мережа, це може бути пам'ять, це можуть бути налаштування MySQL.
Wes

За допомогою HeidiSQL запит займає майже нульовий час. phpMyAdmin також є швидким. Я відправлю код з'єднання.
bytecode77

Я завантажив відповідний код. Також хотілося б відзначити, що зв'язок - це та частина, яка займає весь час. Навіть якщо запит не відпускається, він займає секунду.
bytecode77

Відповіді:


7

Перевірте файл Windows Hosts тут -

C: Драйвери для Windows 32 і т.д.

Переконайтеся, що ця лінія знаходиться там ...

127.0.0.1 localhost

І переконайтеся, що цей рядок прокоментовано ...

::1 localhost

Іноді проблеми з протоколом IPv6 та / або локальним хостом можуть призвести до виникнення таких тайм-аутів.

Також перевірте, чи -

$host = '127.0.0.1'

має значення.


Зміна $ host на 127.0.0.1 дійсно допомогла. Здається, це проблема DNS. Дякую!
bytecode77

так, що підключення за допомогою 127.0.0.1 було .. Спасибо!
dano
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.