这是一个普通的客户端向服务器发送 AJAX 请求,而不使用任何库。
关于数据库:
数据库中只有 1 个表,有 2 列和 2 行。存储引擎InnoDB
注意:这是一个测试数据库。我还有另一个数据库,它有 4 个包含 5000-6000 条记录的表和 18 个少于 500 条记录的其他表
客户端.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 (CASE #1): 没有对数据库的连接查询
<?php
// $con = mysqli_connect("host","username","pass","test_db");
echo json_encode([
'success' => true
]);
exit();
(响应时间约为 59 毫秒)
server.php (CASE #2): 到数据库的连接查询
<?php
$con = mysqli_connect("host","username","pass","test_db");
echo json_encode([
'success' => true
]);
exit();
(响应时间约为 452 毫秒;这不应该发生,直到一周前才发生)
如果我包含与数据库的连接线,为什么响应需要很长时间?
编辑:(只是如果它有助于更好地理解)
当我SHOW PROCESSLIST;
在客户端发送 AJAX 请求时运行时,我看到了这个,
从进程列表看来,它不是本地数据库,即不在 localhost 上,而且您没有使用 localhost 或 127.0.0.1 访问它。
因此,它可能是网络或 DNS 相关问题。检查 DNS 解析问题和网络延迟问题。
如果数据库服务器位于同一主机上并且您在连接字符串中使用 localhost,则尝试将其更改为 127.0.0.1