追記 2010-08-12
今回のエントリですが、「
漢のコンピューター道 - Using filesort」で既に解説されていました・・・。
しかも、「漢のコンピューター道」さんの方が分かりやすいっ
うわぁぁぁん。゜(゚´Д`゚)ノ
----
帰宅してからBlog書こうと思っていたら、さっそく帰宅後の仕事でハマってしまってBlogが中断してしまいました、、、
いけませんね!
というわけで、日中の仕事の中でもBlogのネタを溜めるようにして頑張ります!
さて、今日はMySQLのチューニングネタです!
mysql のSQLをチューニングしていて、EXPLAIN を使って実行計画を見たときに
using temporary; using filesort に出くわす場合があります。
調べてみると、これはなんとしても回避した状況が内部で起こっているサインのようなんですが
じゃぁ何処を見直せばいいのかという判断は、意外と難しかったりします。
そもそも、このサインはなぜ遅いのか?なぜ発生してしまうのか?
その仕組みを理解しておかないと、原因調査もままなりません。
が、日本語サイトでは、なかなかそこまでの情報が引っかからないんですよね・・・。
というわけで、意を決して英語サイトに当たりを付けてみました。
中学の片言英語的な恥ずかしい条件でアタックw
mysql using filesort why と思ったら、なんかいい感じのサイトがヒットしましたーっ!!
やりました。(`・ω・´)9m ビシッ
What does Using filesort mean in MySQL? ここでもザックリ解説してあるのですが
さらに詳細として、セルゲイのサイトを紹介してくれています。
すばらしい。(`・ω・´)9m ビシッ
How MySQL executes ORDER BY というわけで、以下訳です!
英語が苦手なので、雰囲気レベルの翻訳ですがご容赦ください・・・。
#英語が読める方は、元サイトを直接読まれることをオススメします。
#また、間違いを見つけた方は、指摘いただけるとありがたいです・・・。