web-dev-qa-db-ja.com

mysqlでのクエリ実行時間

私はクエリを実行したときに約3300万レコードで構成されるmysqlでクエリを実行しました

  • 都市からpopulation1 <200000を選択します。実行後はこのように表示されます

セット内の34459393行(16.04秒)

私の質問は、16.04秒とは何ですか。通常の時間では30分以上かかっていますが、16.04秒を示しています。実際の時間を計算するにはどうすればよいですか?.

5
user41498

16.04秒は、呼び出しからクエリの実行までに経過した時間を測定するクライアントのタイマーです(それよりも具体的にしたい場合は、呼び出し間の壁時計時間 start_timer() および mysql_end_timer() -- これは私が得たもの )のような陽気な結果につながる可能性があるもの。

実行に30分以上かかったと考える理由は、おそらく標準出力への出力が考慮されていないためです。次のようにして、実際に16秒かかることを確認できます。

mysql> pager cat > /dev/null 
mysql> <your query here>
mysql> nopager

標準出力への書き込みにかかる時間を測定したい場合は、以下を実行できます。

$ time mysql -u <your user> -p<your password> <your database> \
  -e "select population1 < 200000 from city"

[〜#〜] all [〜#〜 ]そのテーブルの行?多分オプション--safe-updatesおよび/またはGUIを使用すると、クエリが少し役立ちますか?

4
jynus

MySQL Workbenchでクエリを実行すると、アクション出力ウィンドウに実際に2回表示されます。見出しは、それらの目的も示しています。

enter image description here

サーバーでの実行時間(おそらく〜16秒)と、サーバーからクライアントにデータを転送するための、通常ははるかに長いフェッチ時間があります。数分以上かかることの多い数百万のレコード。

0
Mike Lischke