phpMyAdmin のような単純なステートメントを実行すると
SELECT *
FROM a
ここで、「a」には 500'000 行があり、ローカルホストで数ミリ秒の時間が得られます。
一部の複雑なクエリは、(予想どおり) はるかに長い時間を報告しますが、一部のクエリは 1/100 秒未満の非常に速い時間も報告しますが、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 未満になります。その違いはどこから来るのですか?返されたオブジェクトなどを反復処理しません...