2010年12月19日

[mysql 15456] orderのfilesortに関して

増田と申します。

filesortはあまり好きではないので、色々調べたり工夫してみたのですが、
どうにもうまくいかず、解決策が浮かばないので、ご教授頂きたく思います。

mysql> SELECT a, b, a*b AS c FROM num ORDER BY c;

というクエリがあったとき、cでソートをするとSELECTで演算を行っているため、

どうしても中間テーブルのようなものができてしまいます。
(最初から、cというカラムを作っておけば良かったのですが…)

サブクエリで上記のかけ算とソートを行ってから、SELECT文を発行しても、
Subquery returns more than 1 row
と言われてしまいますし、ビューを作るのもコストが高いかなと思い、

今ひとついい方法が見つかりません。


filesortが出てしまう性質のものとして、この種のクエリは回避できないと考えるべきなのでしょうか?
もしなにかありましたらご教授頂けると嬉しく思います。

宜しくお願い致します。


増田
--
mailto:masuken@xxxxx

投稿者 xml-rpc : 2010年12月19日 02:49
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100808
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。