当我在phpMyAdmin执行一个简单的语句像phpMyAdmin的 - 查询执行时间
SELECT *
FROM a
其中“a”有500,000行,它给了我在我的本地几毫秒的时间。
一些复杂的查询报告时间比预期的要长,但有些查询报告的速度也非常快,但是phpMyAdmin中的结果页面需要更长的时间才能显示。
所以我不确定,在phpMyAdmin中显示的执行时间是否真的真实准确?它是如何衡量的?它是否用所有子查询,联接等来衡量整个查询?
谢谢!
UPDATE
我觉得这一定是来自像我自己的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';
,并与在报告时间需要7秒钟以上phpMyAdmin的0.005s相同的声明。 查询返回300'000行,如果我用“LIMIT 0,50”将其限制为50,则它不到1/100s。这种差异从哪里来?我不遍历返回的对象或东西...
但是为什么一些结果页面需要1-2秒才能显示,而其他几秒钟显示可比较的时间呢?这一切都在我的本地主机上...... – 2013-03-08 12:42:51
请记住,mysql将使用内部缓存进行查询:第一次需要7秒的查询可能仅仅是第二次运行时的一小部分。 – Oli 2013-03-08 14:11:01
我已经想到了,经常重新选择查询以确保它不是缓存问题。 – 2013-03-08 14:12:07