2010年12月19日

[mysql 15458] 【再送】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が出てしまう性質のものとして、この種のクエリは回避できないと考えるべきなのでしょうか?
もしなにかありましたらご教授頂けると嬉しく思います。

宜しくお願い致します。


増田
--
Kenichi MASUDA
masuda@xxxxx


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




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