当我在 phpMyAdmin 中执行一个简单的语句时
SELECT *
FROM a
其中“a”有 500'000 行,它在我的本地主机上给了我几毫秒的时间。
一些复杂的查询报告的时间更长(如预期的那样),但一些查询的报告时间也非常快 < 1/100s,但 phpMyAdmin 中的结果页面需要更长的时间才能显示。
所以我不确定,在 phpMyAdmin 中显示的执行时间真的真实准确吗?它是如何测量的?它是否使用所有子选择、连接等来衡量整个查询?
谢谢!
更新
我认为用我自己的 PHP 脚本进行测试是个好主意,例如:
$start = microtime(true);
$sql = "same statement as in phpMyAdmin";
$db = new PDO('mysql:host=localhost;dbname=mydb', 'root', 'lala');
$statement = $db -> prepare($sql);
$statement -> execute();
echo microtime(true) - $start . ' seconds';
与 phpMyAdmin 中报告的相同语句 0.005 秒的时间相比,这需要超过 7 秒。查询返回 300'000 行,如果我使用“LIMIT 0,50”将其限制为 50,则它低于 1/100。这种差异从何而来?我不会迭代返回的对象或其他东西......