ご質問させてください。
Windows10でMySQL Workbench 8.0.15 を使用しています。
SQLを実行すると、右下の窓(Output)に実行したSQLとかかった時間が出ます。
かかった時間と言うのは、Duration/Fetchと表示されている内容になります。
このDurationとFetchは具体的に何を表しているのでしょうか?
SELECTをしているSQLがあり、チューニングを行っております。
チューニング前はDurationが600secでFetchが0.063secと表示されていましたが、
チューニング後はDurationが0.766secでFetchが100secと表示されるようになりました。
多少、SQLの書き換えは行いましたが、結果セットの行数はチューニング前とチューニング後で同じです。(3万行です。)
SELECTしているカラムは10カラム程度で、それぞれのカラムは20バイト程度です。
色々と調べていると、Durationは実行時間と書いてるページが多いので、SQLの実行時間と理解しました。
Fetchは結果を転送するのにかかった時間でネットワークの状況によって増減すると書いてあるページが多かったです。
上記が正しいとした場合、分からない点があります。
それは、チューニング前とチューニング後で結果セットの行数が同じなのに、Fetch時間が大幅に違うということです。
同じデータ量を転送するのに、0.063secと100secは違いすぎると思っています。
どなたかご存知の方がいらっしゃれば、ご教示頂ければ幸いです。
■追記です。
色々調べていて、パターンがわかってきました。
SQLにorder byがついている場合はDurationに時間がかかり、
order byがついていない場合はFetchに時間がかかるようです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/10/26 22:55