连接 MySQL 需要很长时间

连接 MySQL 需要很长时间

这是一个普通的客户端向服务器发送 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>

服务器.php (案例 #1):没有与数据库的连接查询

<?php

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

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

(响应时间约需 59 毫秒)

服务器.php (案例 #2):数据库连接查询

<?php

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

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

(响应时间约为 452 毫秒;这种情况不应该发生,而且直到一周前才发生)

如果我将该行连接包含到数据库,为什么响应需要很长时间?

编辑:(只是说是否有助于更好地理解)

SHOW PROCESSLIST;当我在客户端发送 AJAX 请求时运行时,我看到了这一点,

SHOW PROCESSLIST 的结果

答案1

从进程列表来看,它似乎不是一个本地数据库,即不在本地主机上,并且您没有使用本地主机或 127.0.0.1 访问它。

因此,这可能是网络或 DNS 相关问题。请检查 DNS 解析问题和网络延迟问题。

如果数据库服务器位于同一主机上,并且您在连接字符串中使用 localhost,则尝试将其更改为 127.0.0.1

相关内容