これは、マシンがクエリを実行するだけの時間ですか、それともマシンがクエリを表示する時間を含みますか?
この質問をするのは、コンピューターからリモートの MySQL サーバーにアクセスして、15 秒以内に 5000 レコードを受け取る結果が得られるためです。しかし、私は同じユーザーによってこのリモート MySQL サーバーで同じことを正しく行い、約 0.02 秒で 5000 レコードを受け取ります。
2つのタイミングが異なるのはなぜですか?
サーバーの実行時間を測定することだけが本当に必要な場合は、
SHOW PROFILES
.
例:
mysql> set profiling = 1;
mysql> select count(*) from xyz;
+----------+
| count(*) |
+----------+
| 10697 |
+----------+
1 row in set (0.02 sec)
mysql> show profiles;
+----------+------------+--------------------------------+
| Query_ID | Duration | Query |
+----------+------------+--------------------------------+
| 1 | 0.01904200 | select count(*) from xyz |
+----------+------------+--------------------------------+
1 row in set (0.00 sec)
もう少し時間がかかる理由は、
クエリがネットワーク経由で実行される場合、ネットワーク転送時間も考慮する必要があります。この投稿をチェックアウトして、ネットワーク レイテンシをよりよく理解することができます。
これは、DBMS が (クエリ プランに従って) クエリを実行するのに必要な時間を意味します。