小编典典

PHP与MySQL的速度很慢

sql

(重要)编辑3: 单独运行testajax2.php而 _不是_Ajax。持续时间大致相同,为1.02-1.03秒。所以我想这意味着问题出在PHP-
MySQL或XAMPP中

当我通过phpMyAdmin查询运行它时,结果如下:显示第0-29行(总计约50行。查询用时
0.0015秒 )。看来问题根本不在于Ajax,而可能在于PHP。我怎样才能解决这个问题?(我也刚刚编辑了问题标题。)

答案: 在位于以下位置的主机文件中添加以下行 鈥滳:\Windows\System32\drivers\etc鈥�

   127.0.0.1 localhost

之前的问题:

jQuery Ajax的 最小持续时间至少为1秒, 这在正常情况下适用于jQuery
Ajax吗?我试过$.get$.post$.getjson$.ajax({type:'POST'})$.ajax({type:'GET'})。正如我所说的,这是最低要求。甚至可能恶化到大约3秒。我怀疑这是SQL查询,因为当我在phpMyAdmin中尝试它们时,结果显示得非常快。

如果查询非常简单并且表仅包含2个元素,也将紧随其后的是1秒的最小时间。我正在使用最新的XAMPP,我不知道这是否重要,但是我正在通过localhost和127.0.0.1访问文件。

我在本地环境中运行这些文件的同一台笔记本电脑上。jQuery已更新。返回的值/数组是json_encoded。我正在使用mysqli。该数据库位于InnoDB中,并且其中只有大约五个表,并且几乎没有任何内容。这是一个非常简单的示例查询:

文件 index.php

    var test_id =2;
    testcall();
    function testcall(){
        $.ajax({
            url: 'testajax2.php',
            type: 'POST',
            data: {test_id: test_id},
            success: function(data){

            }
        });
    }

文件 testajax2.php

    $mysqli = new mysqli('localhost', 'root', '', 'testdb');
    $mysqli->set_charset("utf8");
    if(mysqli_connect_errno()) {
        echo "Connection Failed: " . mysqli_connect_errno();
        exit();
    }

    $testreceive = $_POST['test_id'];
    $query = "SELECT First_Name from tblperson";
    $result = $mysqli->query($query);
    $row = $result->fetch_all(MYSQLI_ASSOC);

    echo json_encode($row);

tblperson包含50条记录,并且只有四列。根据Firebug的说法,完成这个极其简单的任务需要1.03秒。我不确定这是什么意思,但是通过Firebug的“
网络”
选项卡查看时,该条完全是紫色的。0和1.03秒等待。+1.03秒和0接收。

如果我以json_encode($row)或寄出也没关系foreach($row as $value){ echo $value['First_Name']; }。仍将至少大约1秒。我已经在Chrome和Safari上进行过尝试,尽管我没有确切的时间长度,但我可以说大致相同。但是对于 没有SQL查询
的简单Ajax调用。如果我没记错的话,它的速度非常快。我会返回一个示例和持续时间输出。


阅读 219

收藏
2021-05-05

共1个答案

小编典典

在位于以下位置的主机文件中添加以下行: 鈥滳:\Windows\System32\drivers\etc鈥�

   127.0.0.1 localhost

这解决了我的问题。PHP-MySQL现在可以完成其任务,具体取决于20-500毫秒之间的复杂程度。

2021-05-05