Wap*_*Wap 12 php mysql sql xampp performance
(重要)编辑3:单独运行testajax2.php而不是AJAX.持续时间大致相同,为1.02-1.03s.所以我猜这意味着问题出在PHP-MYSQL或XAMPP中?当通过phpmyadmin查询运行时,结果如下:显示行0 - 29(总共~50行,查询花了0.0015秒).似乎问题不在于Ajax,而在PHP中.请帮助...(我也刚刚编辑了问题标题.)
答案:在位于的主机文件中添加以下行”C:\Windows\System32\drivers\etc”
127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)
$.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中,并且内部只有大约5个表,并且几乎没有任何内容.这是一个非常简单的示例查询:
的index.php
var test_id =2;
testcall();
function testcall(){
$.ajax({
url: 'testajax2.php',
type: 'POST',
data: {test_id: test_id},
success: function(data){
}
});
}
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
tblperson包含50条记录,并且只有4列.根据Firebug的说法,完成这项非常简单的任务需要1.03秒.我不确定它的真正意义,但通过Firebug中的Net标签查看,该栏完全是紫罗兰色.0和1.03s等待.+ 1.03s和0接收.
编辑2:如果我将它们作为index.php或发送也没关系testajax2.php.它仍然是至少1秒.我已经尝试过使用Chrome和Safari,虽然我没有确切的持续时间,但我可以说它大致相同.但是对于没有SQL QUERIES的简单ajax调用.如果我没记错的话,那就快了.我会回来一个样本和持续时间输出.
Wap*_*Wap 16
答案:在位于的主机文件中添加以下行”C:\Windows\System32\drivers\etc”
127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.PHP-MySQL现在可以完成其任务,具体取决于20-500ms之间的复杂程度.
alt*_*tag 14
它可能发生在以下几个地方:1)查询本身,或2)创建mysqli实例(以及生成的数据库连接).如果我不得不猜测,我怀疑你的问题是(2).
一种快速和肮脏的调试方法是使用microtime().
http://www.php.net/manual/en/function.microtime.php
例:
$start = microtime(TRUE); // Start counting
$mysqli = new mysqli('localhost', 'root', '', 'testdb');
$temp = microtime(TRUE) - $start;
echo "Time to connect: {$temp}"; // Check elapsed time
$mysqli->set_charset("utf8");
if(mysqli_connect_errno()) {
echo "Connection Failed: " . mysqli_connect_errno();
exit();
}
$temp = microtime(TRUE) - $start;
echo "Time to setup: {$temp}"; // Check elapsed time
$testreceive = $_POST['test_id'];
$query = "SELECT First_Name from tblperson";
$result = $mysqli->query($query);
$temp = microtime(TRUE) - $start;
echo "Time to query: {$temp}"; // Check elapsed time
$row = $result->fetch_all(MYSQLI_ASSOC);
$temp = microtime(TRUE) - $start;
echo "Time to fetch {$temp}"; // Check elapsed time
Run Code Online (Sandbox Code Playgroud)