當我在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