Вот обычная клиентская сторона, отправляющая запрос 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, я вижу это,
Из списка процессов кажется, что это не локальная база данных, то есть не на локальном хосте, и вы не обращаетесь к ней с помощью localhost или 127.0.0.1.
Следовательно, это может быть проблема, связанная с сетью или DNS. Проверьте проблемы разрешения DNS и проблемы с задержкой в сети.
Если сервер БД находится на том же хосте, и вы используете localhost в строке подключения, попробуйте изменить его на 127.0.0.1.