Назад | Перейти на главную страницу

Подключение к MySQL занимает много времени

Вот обычная клиентская сторона, отправляющая запрос AJAX на сервер без использования каких-либо библиотек.

О базе данных:

В БД есть только 1 таблица с 2 столбцами и 2 строками. Механизм хранения в InnoDB

НОТА: Это тестовая БД. У меня также есть другая БД с 4 таблицами с 5000-6000 записями и 18 другими таблицами с менее чем 500 записями.

client.php:

<html>
...
<body>
  <button class="btn__">Send</button>
  <script>
    var btn = document.querySelector('.btn__');
    btn.onclick = function()
    {
       var xmlhttp = new XMLHttpRequest();
       xmlhttp.onreadystatechange = function()
       {
         if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
         {
            // document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
         }
       };
       xmlhttp.open("POST", "server_files/server.php", true);
       xmlhttp.send();
    }
  </script>
</body>
...
</html>

server.php (СЛУЧАЙ №1): нет запроса на подключение к базе данных

<?php

  // $con = mysqli_connect("host","username","pass","test_db");

  echo json_encode([
    'success' => true
  ]);
  exit();

(ответ занимает ~ 59 мс)

server.php (СЛУЧАЙ № 2): запрос на подключение к базе данных

<?php

  $con = mysqli_connect("host","username","pass","test_db");

  echo json_encode([
    'success' => true
  ]);
  exit();

(ответ занимает ~ 452 мс; этого не должно было происходить, и это произошло только неделю назад)

Почему ответ занимает много времени, если я добавляю эту строку подключения к базе данных?

РЕДАКТИРОВАТЬ: (просто поставьте, если будет полезно лучше понять)

Когда я бегу SHOW PROCESSLIST; когда клиент отправляет запрос AJAX, я вижу это,

Результат SHOW PROCESSLIST

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

Следовательно, это может быть проблема, связанная с сетью или DNS. Проверьте проблемы разрешения DNS и проблемы с задержкой в ​​сети.

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